为了更方便了解,举一实例:在MATLAB中,矩阵元素diff差分。
Y = diff(X) 对数组的第一维来计算相邻 X的差值(要求长度不能为1)
(1)如果 X 是一个 m长度的向量, 那么Y = diff(X) 返回一个 m-1长度的向量。 Y 的元素是相邻 X的差值。Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]。
(2)如果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(2,:)-X(1,:)代表第2行减第1行)。
(3)如果X 是一个零矩阵, 那么Y = diff(X) 返回零矩阵。Y = diff(X,n) 通过迭代计算diff(X) n次来计算第n次的差值。事实上,这就意味着diff(X,2) 等价于diff(diff(X))。Y = diff(X,n,dim) 对 dim所指定的维来计算n次差值。 这个dim参数是一个正整数标量。
Y = diff(X) calculates differences between adjacent elements of X along the first array dimension whose size does not equal 1:
If X is a vector of length m, then Y = diff(X) returns a vector of length m-1. The elements of Y are the differences between adjacent elements of X.
Y = [X(2)-X(1) X(3)-X(2) ... X(m)-X(m-1)]
If X is a nonempty, nonvector p-by-m matrix, then Y = diff(X) returns a matrix of size (p-1)-by-m, whose elements are the differences between the rows of X.
Y = [X(2,:)-X(1,:); X(3,:)-X(2,:); ... X(p,:)-X(p-1,:)]
If X is a 0-by-0 empty matrix, then Y = diff(X) returns a 0-by-0 empty matrix.