Для массива m-by-m (square), как вы объединяете все строки в вектор-столбец с размером m ^ 2?
Как вы объединяете строки матрицы в вектор?
Ответ 1
Существует несколько разных способов свернуть вашу матрицу в вектор, в зависимости от того, как вы хотите, чтобы содержимое вашей матрицы заполнило этот вектор. Вот два примера: один с использованием функции 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
Ответ 2
Очень важная нота в изменении матрицы на вектор состоит в том, что MATLAB создает выходной вектор из столбцов матрицы, если вы используете A(:)
например:
A = [1 2 3 ; 4 5 6]
B = A (:)
B = [1 4 2 5 3 6]
На следующем изображении вы можете увидеть направление изменения.