如果我有一个称为数据的任意n * m矩阵,并且我希望通过逐步增大步长来求矩阵的差。
第一种情况的第一列等于data(:,2)-data(:,1)
,第二列的data(:,3)-data(:,2)
依此类推。这可以通过以下功能来完成。
data = diff(data,1,2)
同样,我也想根据第二列的差异,以便第一个条目是data(:,3)-data(:,1)
,第二个条目data(:,5)-data(:,3)
,依此类推。
这不能通过diff来完成,但是还有其他函数或方法可以不借助循环来做到这一点吗?
我需要对每个n值(最多50个)执行相同的操作。
使用column indexing
选择“正确”的栏目,然后使用自己喜欢的diff
-
A = randi(9,4,9) %// Input array
stepsize = 2; %// Edit this for a different stepsize
out = diff(A(:,1:stepsize:end),1,2)
输出 -
A =
8 9 9 8 3 2 6 8 7
2 5 5 7 5 3 9 6 3
2 7 7 2 4 1 2 4 1
6 2 1 5 4 9 9 3 7
out =
1 -6 3 1
3 0 4 -6
5 -3 -2 -1
-5 3 5 -2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句