For loop stops in the first find

3 views (last 30 days)
Why does this for loop stop at the first find?.
Val = max(max(D(:, 2:end), [], 2));
rows = [];
for i = 1:size(D, 1)
if (any(D(i, 2:end) == Val))
rows = [rows, i];
D(rows)
end
end
  5 Comments
Fil Okua
Fil Okua on 25 Apr 2021
@Image Analyst, I am trying store both.
Fil Okua
Fil Okua on 25 Apr 2021
But I'm only interested in the values at the indexes

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 25 Apr 2021
Edited: Walter Roberson on 25 Apr 2021
Val = max(max(D(:, 2:end), [], 2));
rows = [];
for i = 1:size(D, 1)
if (any(D(i, 2:end) == Val))
rows = [rows; D(i,:)];
end
end
However...
mask = any(D == max(max(D(:,2:end))),2);
rows = D(mask,:);
with no loop is all that is needed.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!