find the index who have the max value in cell structure

5 views (last 30 days)
i have a cell structure like this:
ex1=[1 2 3];
ex2=[2 3 0];
for i=1:3
a(i).b=struct('ex1',ex1(i),'ex2',ex2(i));
end
how can i find the index of a(i) who have the max value of ex1 but the ex2 must be greater than 0?

Accepted Answer

Voss
Voss on 23 Aug 2022
Edited: Voss on 30 Aug 2022
ex1=[1 2 3];
ex2=[0 3 2];
for i=1:3
a(i).b = struct('ex1',ex1(i),'ex2',ex2(i));
end
temp = [a.b];
posidx = find([temp.ex2] > 0);
[maxval,tempidx] = max([temp(posidx).ex1]);
maxidx = posidx(tempidx);
disp(maxval);
3
disp(maxidx);
3
  2 Comments
Voss
Voss on 30 Aug 2022
You're right. I've changed the answer and changed the ex2 to [0 3 2], and it now gives the expected result.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!