如何在Matlab中存储嵌套for循环在数组中生成的值?

时间:2012-09-04 23:15:25

标签: arrays matlab for-loop store

y = find(sA);
l = y + sA;

for i=1:10
  for j=1
      l = l + sA;
  end
  y = y + length(y);
end

我想知道如何在每个迭代中为数组存储为l生成的值。

当我尝试做l(l)= l + sA之类的事情;我得到了奇怪的'结果

注意:请阅读下面发表的评论。谢谢!

2 个答案:

答案 0 :(得分:0)

对于复杂的循环,通常我会这样做:

results = zeros(expectedLength,1);
ixNextResult = 1;

for ixForLoop1 = 1:10
    for ixForLoop2 = 20:30
        ..
        results(ixNextResult) = calculationResult;
        ixnextResult = ixNextResult + 1;
    end
end

我很难理解你的代码想要完成什么,所以我不确定要改变什么。例如,代码段l(l) = l+sA对我来说并没有太大的吸引力。

答案 1 :(得分:0)

试试这样:

y = find(sA); %This is incredibly strange! What exactly are you trying to achieve with this line?
l = y + sA;

for i=1:10
  l = l + sA;
  StoredL(i, :) = l;
  y = y + length(y); %This line does nothing??? Why is it here?
end

我删除了你的内循环,因为它什么都不做,因为j = 1只会运行一次所以重点是什么?