在循环matlab中合并矩阵



我有一个矩阵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

它超过了矩阵维度,因为c的第二个维度是39,并且您的循环引用的值高达1482。

如果你正在观察不同的矩阵大小,重塑形状可能会有所帮助,但如果你只是想从矩阵转换为向量,那么只需使用(:)符号就可以了。

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

ps。只有在指定了最终矩阵大小的情况下,预分配f才真正有帮助。在这里,您所做的一切都被声明为一个空矩阵,然后在每个循环迭代中进行扩展。

相关内容

  • 没有找到相关文章

最新更新