3

Matlabプログラムについて質問したいのですが。

私はベクトルを持っていますa

a = [1 2 3 4 5 6 7 8 9 10 11 12];

aベクトルを2D配列に変換したいのですが。通常、私はこのコードを使用して変換します。

m =1;
for i=1:4
   for j=1:3
      b(i,j) = a(m);
      m=m+1;
   end
end

次にb、2Dマトリックスです。

b =

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

誰でも、ループを使用せずに1Dを2Dに変換するアイデアがあります。

ありがとう、

4

1 に答える 1

16

reshape関数とヘルプページを確認してください。

特に、

B = reshape(A,m,n)

要素がから列方向に取得されるm-by-n行列を返します。要素がない場合はエラーが発生します。BAAm*n

列単位であることに注意してください。したがって、3行4列の行列を作成し、それを横に傾けることをお勧めします(A.'行列の転置を行います)。

于 2013-02-28T01:50:10.857 に答える