web-dev-qa-db-ja.com

行列の行をどのように連結してベクトルにしますか?

M行m列(正方形)配列の場合、すべての行をサイズm ^ 2の列ベクトルに連結するにはどうすればよいですか?

34
jimbo

マトリックスの内容をどのようにベクトルに埋めるかに応じて、マトリックスをベクトルに折りたたむことができるいくつかの異なる方法があります。以下に2つの例を示します。1つは関数 reshape (最初の transposing の後に)、もう1つは コロン構文 _(:)_:

_>> M = [1 2 3; 4 5 6; 7 8 9];    % Sample matrix
>> vector = reshape(M.', [], 1)  % Collect the row contents into a column vector

vector =

     1
     2
     3
     4
     5
     6
     7
     8
     9

>> vector = M(:)  % Collect the column contents into a column vector

vector =

     1
     4
     7
     2
     5
     8
     3
     6
     9
_
64
gnovice

行列をベクトルに変更する際の非常に重要な注意点は、A(:)を使用する場合、MATLABは行列の列から出力ベクトルを生成することです

例えば ​​:

A = [1 2 3 ; 4 5 6]

B = A (:)

B = [1 4 2 5 3 6]

次の画像で変化の方向を確認できます。 Direction of changing

0
PyMatFlow