保存所有循环结果

时间:2016-09-18 08:42:12

标签: matlab loops matrix

早上好,

我认为我的问题必须非常简单,但我找不到怎么做。我有一个循环,我想“保存”结果。问题是代码我只能保存'last'列,而不是全部。这是代码:

b = xlsread('Data.xls', 'Sheet1'); %here I'm reading the excel data
d= size(b); % the size of the input table is 8 x 16 columns.
cols= d(:,2); 
Results=[]

for a=b(:,2:cols)

     n= 2;
     m2 = ar(a,n);
    K=6;
    hf2=forecast(m2,a,K); 

 for a=b(:,2:cols) % here I try to save the results but it only save the 'last column', not all the columns. 
     Results=[forecast(m2,a,K)]
  end
end

可能是什么问题?

提前致谢! :)

1 个答案:

答案 0 :(得分:0)

问题是第二个循环,您要保存输出。使用新输出在每次迭代中替换Results。您应该在循环之前将Results预先分配到其最终大小,并在循环中逐列填充它。有两个循环也没有意义。在这里,我摆脱了一些额外的变量,并试图让你的代码整洁:

b = xlsread('Data.xls', 'Sheet1');
[~, cols] = size(b);
n = 2;
K = 6;
Results = zeros(K, cols - 1);
for ii = 2:cols
    a = b(:, ii);
    Results(: , ii) = forecast(ar(a, n), a, K);
end