Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从矢量到矩阵为每列每第i行重塑形状_Arrays_Matlab_Matrix_Resize_Reshape - Fatal编程技术网

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)'

请注意,
也应用复共轭。要仅转置,请使用