Как получить матрицу из вектора мажорной строки в 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