我有一个矩阵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
答案 0 :(得分:0)
它超出了矩阵尺寸,因为c的第二个维度为39,并且您的循环引用的值最多为1482.
如果您正在查看不同的矩阵大小,那么重塑可能有所帮助,但如果您只是想从矩阵转换为向量,那么只需使用(:)符号即可。
c=rand(38,39);
f=c(:)';
PS。如果指定最终矩阵大小,预分配f确实很有帮助。在这里,您所做的就是声明一个空矩阵,然后在每次循环迭代时展开。