在for循环matlab中合并矩阵

时间:2015-03-24 15:28:56

标签: matlab matrix

我有一个矩阵c[38,39],想要将它合并到一个新的,我们可以说f[1,1482]。所以首先我预先分配f,然后在for循环中我尝试合并它,但它一直说我超出了矩阵维度。我知道有cat函数但我得到了相同的结果,也许reshape函数会有帮助吗?提前感谢任何建议。

f=[];       %// pre-allocating the mew matrix
for k=1:1482    %// 1482=38*39
f(:,k)=[c(:,1);c(:,k)]; %// merging 
end

1 个答案:

答案 0 :(得分:0)

它超出了矩阵尺寸,因为c的第二个维度为39,并且您的循环引用的值最多为1482.

如果您正在查看不同的矩阵大小,那么重塑可能有所帮助,但如果您只是想从矩阵转换为向量,那么只需使用(:)符号即可。

c=rand(38,39);
f=c(:)';

PS。如果指定最终矩阵大小,预分配f确实很有帮助。在这里,您所做的就是声明一个空矩阵,然后在每次循环迭代时展开。