Как вы объединяете строки матрицы в вектор? - PullRequest
34 голосов
/ 27 апреля 2010

Как для массива размером m на m (квадрат) объединить все строки в вектор-столбец размером m ^ 2?

Ответы [ 2 ]

64 голосов
/ 27 апреля 2010

Есть несколько различных способов, которыми вы можете свернуть свою матрицу в вектор, в зависимости от того, как вы хотите, чтобы содержимое вашей матрицы заполнило этот вектор. Вот два примера: один использует функцию reshape (после первой транспонирования матрицы), а второй - синтаксис двоеточия (:):

>> 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
0 голосов
/ 25 июня 2018

При замене матрицы на вектор очень важно отметить, что MATLAB создает выходной вектор из столбцов матрицы, если вы используете A(:)

например:

A = [1 2 3 ; 4 5 6]

B = A (:)

B = [1 4 2 5 3 6]

Вы можете увидеть направление изменения на следующем изображении. Direction of changing

...