0

私はMATLABの初心者です。マトリックスからいくつかのローリング連続行を選択し、選択した行の要素を列に表示する新しいマトリックスを生成するループを作成する必要があります。例えば:

a =

 1     2     3
 4     5     6
 7     8     9
10    11    12

loop = 2 、2 つの連続する行のローリングを選択することを意味します。行 1&2 行 2&3 行 3&4)

期待される結果は次の行列になります: b =

 1     4     7
 2     5     8
 3     6     9
 4     7    10
 5     8    11
 6     9    12

選択した行の要素は、列の新しいマトリックスに配置する必要があります。

とにかく私はこれを行うことができますか?

ありがとう

4

1 に答える 1

0

それは、どの程度一般化するかによって異なります。あなたの質問には多くの暗黙の仮定があり、「ローリング」はあいまいな用語です。特定のケースでは、入力行列 A の場合、「ループ」= n:

function B = rollup(A,n)
B = [];
for i = 1:n
   Btemp = transpose(A(i:i+2,:));
   B = [B;Btemp];
end

これは、3 つの列がある非常に特殊なケースでのみ機能し、l が行数である n > l-2 を持つことはできないことに注意してください。

于 2012-05-23T16:25:23.913 に答える