如何重塑矢量以制作矩阵?

时间:2012-03-10 19:33:57

标签: matlab

这就是我所拥有的:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

这就是我想要的:

[
  1,  2,  3,  4,
  5,  6,  7,  8,
  9, 10, 11, 12
] 

行数和列数(示例中为3和4)已为人所知。

我该怎么做?

2 个答案:

答案 0 :(得分:5)

reshape

b = reshape(a, 4, 3)'将适用于您的示例。元素取自原始元素并逐列插入新矩阵。

此外,reshape是一个内置的MATLAB函数。存在需要通信工具箱的其他解决方案,例如vec2mat

答案 1 :(得分:2)

guide

  

mat = vec2mat(vec,matcol)将矢量vec转换为带有matcol列的矩阵,一次创建一行。如果vec的长度不是matcol的倍数,则在最后一排垫子中放置额外的零。矩阵垫有ceil(长度(vec)/ matcol)行。