0

行列 [mXn] があるとします。例: a=[2 9; 5 7; 8 25; 1 6; 3 9]。

2行目から1行目を引き、2行の差が1になるまで続ける方法を知りたいです。

次に、3 番目の行から 1 番目の行を減算し、差が 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
4

1 に答える 1

0

あなたの命名スキームは、MATLAB では実際には実行可能または有用ではないため、違いを保持するために 3 次元配列を使用しました。この操作の鍵は、関数を定義した配列の行を回転させることです。

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
于 2011-11-05T01:11:15.860 に答える