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 日

1 投票

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 日

0 投票

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 日

0 投票

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)

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

カテゴリ

ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by