Как получить матрицу из вектора мажорной строки в Matlab?

У меня есть следующая матрица:

50,60,55,67,70
62,65,70,70,81
72,66,77,80,69

Теперь я превращаю матрицу в вектор, но в мажорную строку. Это дает следующий вектор:

50,60,55,67,70,62,65,70,70,81,72,66,77,80,69

Теперь я хотел бы превратить этот вектор в ту же матрицу, что и выше. Проблема в том, что reshape(matrix,[3,5]) не работает, потому что Matlab работает столбец-мажор.

Как это можно сделать эффективно (для больших матриц)?

1 ответ

Решение

Чтобы решить эту проблему, используйте

reshape(matrix,[5,3]).'

Сначала с помощью изменения формы с изменением размера строк и столбцов вы получаете матрицу с правильным порядком, но транспонированную, затем с помощью транспонирования вы получаете правильный вывод.

Имея набор инструментов для систем управления, вы также можете использовать vec2mat

Другие вопросы по тегам