Как изменить вектор для создания матрицы?

Вот что у меня есть:

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

И вот что я хочу получить:

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

Число строк и столбцов (3 и 4 в примере) уже известно.

Как мне это сделать?

2 ответа

Этот руководство говорит

mat = vec2mat (vec, matcol) преобразует вектор vec в матрицу с столбцами matcol, создавая по одной строке за раз. Если длина vec не кратная matcol, то дополнительные нули помещаются в последний ряд мат. Матричный мат имеет строки ceil (длина (vec)/matcol).


reshape

b = reshape(a, 4, 3)' будет работать для вашего примера. Элементы берутся из оригинала и вставляются в новую матрицу по столбцам.

Кроме того, reshape является встроенной функцией MATLAB. Существуют другие решения, такие как vec2mat, для которых требуется панель инструментов связи.

licensed under cc by-sa 3.0 with attribution.