在Matlab中以行方式复制或重塑维度

时间:2013-03-05 06:04:26

标签: arrays matlab matrix

我有一个5 x 2611 + 1悬挂的矩阵,我想得到相同的矩阵96x136矩阵 我想的是复制每一行,直到它完成136等等。但是,我不知道从哪里开始或哪个功能是最好的伎俩。 例如:

 [2 3 5 6 7;
 8 9.555 10.888 20.888 3.5;
 .........................;
  ......................   5]

所以矩阵看起来像5 * 2611 + 1 我知道mat不会在一行和一列中接受它,因为上面的尺寸是2611 * 5 最后我有最后一个元素

以行方式更改它 成为 2 3 5 6 7 8 9.555 10.888 20.888 3.5 ........ 5直到136列结束 并以相同的顺序开始一个新行。

2 个答案:

答案 0 :(得分:2)

您需要使用转置和reshape

A = [ 2 3 5 6 7 8;...
      9 10 11 12 13];
B = reshape( A.', [3 4] ).';

B的大小为[4 3],其元素根据堆叠A进行排序。

答案 1 :(得分:2)

如果你有一个5*2611元素矩阵,你可以:

  1. 将其重塑为一行,例如vec1 = reshape(mat1',1,5*2611)
  2. 增加额外价值,例如vec1 = [vec1 dangler]
  3. 再次重塑为矩阵mat2 = reshape(vec1,96,136)
  4. 并且,如果我得到了正确的转置,你就拥有了你正在寻找的矩阵。如果我没有得到正确的转调@Shai将会出现并纠正我。