MATLAB函数及应用
上QQ阅读APP看书,第一时间看更新

21.diff函数

diff函数的作用是计算矩阵的差分。函数的语法格式为:

Y=diff(X):计算沿大小不等于1的第一个数组维度的X相邻元素之间的差分:

· 如果X是长度为m的向量,则Y=diff(X)返回长度为m-1的向量。Y的元素是X相邻元素之间的差分。

Y=[X(2)-X(1)X(3)-X(2)…X(m)-X(m-1)]

· 如果X是不为空的非向量p×m矩阵,则Y=diff(X)返回大小为(p-1)×m的矩阵,其元素是X的行之间的差分。

Y=[X(2,:)-X(1,:);X(3,:)-X(2,:);…;X(p,:)-X(p-1,:)]

· 如果X是0×0的空矩阵,则Y=diff(X)返回0×0的空矩阵。

Y=diff(X,n):通过递归应用diff(X)运算符n次来计算第n个差分。在实际操作中,这表示diff(X,2)与diff(diff(X))相同。

Y=diff(X,n,dim):沿dim指定的维计算的第n个差分。dim输入是一个正整数标量。以一个二维p×m输入数组A为例,其效果如图1-9所示。

图1-9 diff(X,n,dim)差分效果

diff(A,1,1),对A的列中的连续元素进行处理,然后返回(p-1)×m的差分矩阵。

diff(A,1,2),对A的行中的连续元素进行处理,然后返回p×(m-1)的差分矩阵。

【例1-21】使用差分求导数近似值。

使用diff函数和语法Y=diff(f)/h求偏导数近似值,其中f是函数值在某些域X上计算的向量,h是一个相应的步长大小。

例如,sin(x)相对于x的第一个导数为cos(x),相对于x的第二个导数值为-sin(x)。可以使用diff求这些导数的近似值。

运行程序,效果如图1-10所示。

图1-10 差分求导数效果