0
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; のようなことをしようとすると、「奇妙な」結果が得られます。

注: 以下に投稿された私のコメントをお読みください。ありがとう!

4

2 に答える 2

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は私にはあまり意味がありません。

于 2012-09-04T23:54:10.913 に答える
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 は一度しか実行されないため、何もしていないため、内側のループを削除しました。

于 2012-09-05T07:07:17.013 に答える