我有一个循环,为每次迭代输出变量A
作为mx1 matrix (where: m>1)
。在整个循环结束时,A
将最终成为mxn matrix
。虽然输出是作为mxn
矩阵返回的,但它会一直覆盖结果。我已经尝试了很多东西(包括那些为我以前的代码工作过的东西),但没有一个可以工作。不过,我觉得下面的代码应该可以工作,但我不确定错误来自哪里。我如何从循环保存我的输出数组?
x_A = NaN(28, 3); % 28=length of A and 3=length of kk
Z = [1,2,4,7];
for kk = 1: numel(Z)
[A,B,C] = fsave_output(Z, kk)
x_A = [x_A(:,kk) A(:,kk)];
% repeat the line above for B and C
end
当运行此,我得到的错误消息:“试图访问x_A(:,3);索引超出范围,因为大小(x_norm)= [28,2]。”。但是,x_A(:,1)和X_A(:,2)中的输出是正确的,只有x_A(:,3)不显示。
任何想法/建议/帮助我应该在这里做什么?提前谢谢了!。
你肯定A是大小相同的在每个循环迭代?并像'x_A = [x_A; [A]];'减慢代码,使用预分配。 – Gryphon
感谢@Gryphon的回复。就像我说的,我在书中尝试了很多技巧。另外,对于你的问题的第一部分, 'A'肯定每次迭代都有相同的大小。 – User110
在更新后的代码中,每次循环迭代调整x_A数组的大小,因此在kk = 3时会出现错误,因为此时x_A是28x2 – Gryphon