如何从 Matlab 中的行优先向量中获取矩阵?
How to get Matrix from row-major vector in 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 操作列优先。
如何有效地做到这一点(对于大矩阵)?
要解决这个问题,请使用
reshape(matrix,[5,3]).'
首先使用 reshape 交换行和列维度,你得到一个顺序正确但转置的矩阵,然后使用转置你得到正确的输出。
拥有控制系统工具箱,您还可以使用vec2mat
我有以下矩阵:
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 操作列优先。
如何有效地做到这一点(对于大矩阵)?
要解决这个问题,请使用
reshape(matrix,[5,3]).'
首先使用 reshape 交换行和列维度,你得到一个顺序正确但转置的矩阵,然后使用转置你得到正确的输出。
拥有控制系统工具箱,您还可以使用vec2mat