Как вы объединяете строки матрицы в вектор?

35

Для массива m-by-m (square), как вы объединяете все строки в вектор-столбец с размером m ^ 2?

  • 0
    Разве матричная конкатенация обычно не означает умножение?
  • 5
    Я думаю, что он просто хочет "сплющить" квадратную матрицу в вектор-столбец, нет?
Теги:
matrix
concatenation

2 ответа

64

Существует несколько разных способов свернуть вашу матрицу в вектор, в зависимости от того, как вы хотите, чтобы содержимое вашей матрицы заполнило этот вектор. Вот два примера: один с использованием функции 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
  • 6
    +1 за [] в качестве аргумента за reshape , не знал этого.
0

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

например:

A = [1 2 3 ; 4 5 6]

B = A (:)

B = [1 4 2 5 3 6]

На следующем изображении вы можете увидеть направление изменения. Изображение 6355

Ещё вопросы

Сообщество Overcoder
Наверх
Меню