你好!matlab函数的diff有两种功能
功能1
当输入的变量是矩阵或者向量时,diff作差分使用,就是后面的变量减去前面的变量得到的数
a = [1,2,3,5,9];
b = diff(a)
结果是
b =
1 1 2 4
功能2
用来求符号函数的导数,注意是符号函数,不是字符串!!
例子
syms y x
y = x^2;
diff(y)
得到y对x的导数如下
ans =
2*x
题主的问题分析
题主输入的是一段字符串,不是一个符号表达式,按照字符串的定义,字符串本身就是由它的ascii值构成的,所以一串字符串就是一个包含字符对应的ascii值得到得整数数组,所以题主用diff时,其实是使用了diff的第一种用法。
若要使用第二组用法,用str2sym函数就行
>> s1=str2sym('6*x^3-4*x^2+b*x-5');
>> diff(s1)
ans =
18*x^2 - 8*x + b