让我们假设有一个矩阵mXn。例如: a=2 9;57;8 25;1 6;3 9。
我想知道如何从第二行中减去第一行,依此类推,直到两行之间的差值为1为止。
下一步,从第三行中减去第一行,依此类推,其中差值为2。
在每次循环之后,保存新矩阵的输出,新矩阵的名称与循环对应,例如,for difference1名称可以是newMatDif_1,依此类推。
diff1----5-2 7-9; 8-2 25-9; .......newMatDiff_1
diff2----8-2 25-9; 3-8 9-25;.......newMatDiff_2
diff3----1-2 6-9; .......newMatDiff_3
发布于 2011-11-05 09:11:16
您的命名方案在MATLAB中并不是真正可行或有用的,所以我使用了一个三维数组来保存差异。这个操作的关键是旋转数组的行,我已经为它定义了一个函数:
rotate_rows = @(A, n) ( [ A((n+1):end,:); A(1:n,:)]);
for r = 1:rows(A)-1
diffs(:,:,r) = a - rotate_rows(a,r);
end
https://stackoverflow.com/questions/8017190
复制相似问题