MATLAB Answers

mr mo
0

Find Minimum based on new criteria

Asked by mr mo
on 5 Nov 2017
Latest activity Commented on by Star Strider
on 5 Nov 2017
Hi. Suppose I have a matrix A e.g.
A=[
8.2505 4.8825 2.2563 0.0020 0
8.2505 4.8825 2.2687 0.0020 1
8.2505 4.8825 2.2813 0.0020 1
8.2505 4.9325 2.2813 0.0020 0
8.2505 4.9325 2.2938 0.0020 1
8.2755 4.7575 2.2437 0.0020 0
8.2755 4.7575 2.2563 0.0020 0
8.2755 4.7575 2.2687 0.0020 1
8.2755 4.8075 2.2188 0.0020 0
8.2755 4.8075 2.2313 0.0020 0
8.2755 4.8075 2.2437 0.0020 1
8.2755 4.8075 2.2563 0.0010 1
8.2755 4.8075 2.2687 0.0010 1];
I want to find the row that its value in third column is minimum and the value in fifth column is 1; if the value in fifth column is 0, then I want to find the row that has the next minimum value in third column and its value in fifth column is 1. Thanks for your help.

  0 Comments

Sign in to comment.

2 Answers

Answer by Star Strider
on 5 Nov 2017
 Accepted Answer

This works:
row = (A(:,3) == min(A(A(:,5)==1,3))) & (A(:,5) == 1); % Row Index (Logical Vector)
Result = A(row,:) % Desired Row
If you want the number index of the row, use the find function:
row_index = find(row);

  2 Comments

mr mo
on 5 Nov 2017
Thank you very much.
As always, my pleasure.

Sign in to comment.



minval = min(A(A(:,5)==1,3))
rowindx = find(A(:,3)==minval)

  0 Comments

Sign in to comment.