Arrays 从矢量到矩阵为每列每第i行重塑形状
我有这个向量:Arrays 从矢量到矩阵为每列每第i行重塑形状,arrays,matlab,matrix,resize,reshape,Arrays,Matlab,Matrix,Resize,Reshape,我有这个向量: arr = [1; 2; 3; 1; 2; 3; 1; 2; 3; 1; 2; 3] 我想把它变成一个4x3矩阵,看起来像这样: mat = [1 1 1;... 2 2 2;... 3 3 3;... 1 1 1;... 2 2 2;... 3 3 3;... 1 1 1;... 2 2 2;... 3 3 3;... 1 1 1;... 2 2 2;... 3 3 3] 到目前为止,我通过以下方式实现了这一目标: a1 = arr(1:3:end); a2 = arr(2
arr = [1; 2; 3; 1; 2; 3; 1; 2; 3; 1; 2; 3]
我想把它变成一个4x3矩阵,看起来像这样:
mat = [1 1 1;...
2 2 2;...
3 3 3;...
1 1 1;...
2 2 2;...
3 3 3;...
1 1 1;...
2 2 2;...
3 3 3;...
1 1 1;...
2 2 2;...
3 3 3]
到目前为止,我通过以下方式实现了这一目标:
a1 = arr(1:3:end);
a2 = arr(2:3:end);
a3 = arr(3:3:end);
mat = [a1 a2 a3];
例如,
重塑
功能是否有更方便的方法?重塑
不会改变矩阵中元素的数量。它通过重新排列现有元素来重塑矩阵
在您的情况下,可以使用repmat
,将矩阵或向量复制一次或多次:
mat = repmat(arr,1,3);
您可以阅读有关repmat的更多信息
此外,您的解决方案没有给出代码块中显示的矩阵。要获得解决方案给出的结果,可以使用
重塑
:
mat = reshape(arr,3,4)'
请注意,
“
也应用复共轭。要仅转置,请使用“