在Matlab中如何从行主向量得到矩阵?

在Matlab中如何从行主向量得到矩阵?,matlab,matrix,row-major-order,column-major-order,Matlab,Matrix,Row Major Order,Column Major Order,我有以下矩阵: 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 现在我想把这个向量转换成与上面相同的矩阵。问题是,重塑(矩阵[3,5])不起作用,因为Matlab操作的是列 如何有效地(针对大型矩阵)执行此操作?要解决此问题,请使用 reshape(matrix,[5,3]).' 首先使用行和列维度交换

我有以下矩阵:

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
现在我想把这个向量转换成与上面相同的矩阵。问题是,
重塑(矩阵[3,5])
不起作用,因为Matlab操作的是列

如何有效地(针对大型矩阵)执行此操作?

要解决此问题,请使用

reshape(matrix,[5,3]).'
首先使用行和列维度交换的重塑,得到顺序正确但经过转置的矩阵,然后使用转置得到正确的输出

有了控制系统工具箱,您还可以使用

来解决这个问题,使用

reshape(matrix,[5,3]).'
首先使用行和列维度交换的重塑,得到顺序正确但经过转置的矩阵,然后使用转置得到正确的输出


有了控制系统工具箱,您还可以使用

请再次检查示例,使用
重塑(矩阵[3,5])的向量
Matlab生成的矩阵与您的问题中的矩阵完全相同。@Daniel我已经编辑了我的示例,很抱歉。请使用
重塑(矩阵[3,5])的向量再次检查示例
Matlab生成的矩阵与您的问题中的矩阵完全相同。@Daniel我已经编辑了我的示例,非常抱歉。非常感谢。用vec2mat怎么做?重塑或vec2mat对大型矩阵更有效吗?我假设没有速度差异,但我无法测试,因为我没有工具箱。数据必须在内存中重新排列,因此对于大型矩阵,可能需要一些时间。@如果查看
vec2mat
的代码,您会发现它有一些开销,然后调用
重塑
。因此,必须对
进行重塑faster@LuisMendo:我想它不会变魔术,也需要换位?@Daniel:-)是的,我忘了,非常感谢。用vec2mat怎么做?重塑或vec2mat对大型矩阵更有效吗?我假设没有速度差异,但我无法测试,因为我没有工具箱。数据必须在内存中重新排列,因此对于大型矩阵,可能需要一些时间。@如果查看
vec2mat
的代码,您会发现它有一些开销,然后调用
重塑
。因此,必须对
进行重塑faster@LuisMendo:我想它不会变魔术,也需要转置?@Daniel:-)是的,我忘了