Looping with indices that are not equally spaced

11 ビュー (過去 30 日間)
John F
John F 2011 年 6 月 23 日
コメント済み: Walter Roberson 2019 年 12 月 22 日
I'm trying to run a loop on a group of indices I obtained using "find". The indices will not always be consecutive. So, running a for loop like:
for i = indices
won't work. I'm trying to avoid doing something like:
for i = 1:length(VECTOR)
Any ideas?
  2 件のコメント
Oleg Komarov
Oleg Komarov 2011 年 6 月 23 日
not clear why it won't work. Depends how you structure the operations inside the loop. Post more code.
Daniel Shub
Daniel Shub 2011 年 6 月 23 日
What do you mean it doesn't work? What would you expect to get with:
indices = [1,2,3,5,7,13,11];
for i = indices, i, end

サインインしてコメントする。

採用された回答

Laura Proctor
Laura Proctor 2011 年 6 月 23 日
Actually, it will work.
for idx = [ 1 -2 10 12.5 0 ]
disp(idx)
end
Isn't MATLAB cool?

その他の回答 (2 件)

John F
John F 2011 年 6 月 23 日
So, it works with a row vector of indices, but not a column?
I tried that bit of code but transposed idx, and the loop didn't work. Strange?
  2 件のコメント
Laura Proctor
Laura Proctor 2011 年 6 月 23 日
編集済み: Walter Roberson 2019 年 12 月 22 日
You are correct - check out Loren's Blog, it explains this behavior much better than I can:
Daniel Shub
Daniel Shub 2011 年 6 月 23 日
編集済み: Walter Roberson 2019 年 12 月 22 日
Yeah, but check out what it does do with a column. You should have a read of:

サインインしてコメントする。


Frederick Abangba Akendola
Frederick Abangba Akendola 2019 年 12 月 22 日
Please, how do I write a “For” loop with irregular interval? For example; 2,4,8,16,32
  1 件のコメント
Walter Roberson
Walter Roberson 2019 年 12 月 22 日
for K = 2.^(1:5)
result = whatever involving K
end
However, most of the time you want to create one output per input. The general way to do that is
K_vals = 2.^(1:5);
numK = numel(K_vals);
results = zeros(size(K_vals));
for K_idx = 1 : numK
K = K_vals(K_idx);
results(K_id) = whatever involving K
end
plot(K_vals, results)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by