让我们假设有一个矩阵[mXn]。例如:a = [2 9; 5 7; 8 25; 1 6; 3 9]。
我想知道如何从第2行中减去第1行,依此类推,直到两行之间的差为1结束。
接下来从第3行减去第一行,依此类推,差值为2。
在每个循环之后保存新矩阵的输出,其中包含与循环相对应的名称,对于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
答案 0 :(得分:0)
你的命名方案在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