Select from 2D Array by 2 criteria - Matlab

1 次查看(过去 30 天)
I have a 15 * 2 array where the first column represents the area and the second column represents the corresponding circularity to the 15 objects. I need to select the row with maximum area while applying the following condition for the circularity to be > 0.9 and <= 1.2
Example:
  • Area Circularity
  • ----- -----------
  • 22041 1,1703
  • 23458 2,8425
  • 155 1,4165
  • 37 2,1089
  • 215 1,5692
  • 41 1,0549
  • 659 1,7144
  • 64 1,0508
  • 3 0,3092
  • 584 1,2543
  • 26 1,1132
  • 396 2,9046
  • 1 0
  • 3 0,8488
  • 4 0,4638
  • Expected Result:
  • 22041 1,1703

采纳的回答

James Tursa
James Tursa 2017-3-15
编辑:James Tursa 2017-3-15
Try this:
y = your 2D matrix
x = y(:,2) > 0.9 & y(:,2) <= 1.2;
z = y(x,:);
[~,k] = max(z);
result = z(k,:);

更多回答(1 个)

Guillaume
Guillaume 2017-3-15
编辑:Guillaume 2017-3-15
filteredarray = yourarray(yourarray(:, 2) > 0.9 & yourarray(:, 2) <= 1.2, :); %filter unwanted rows
[~, maxrow] = max(filteredarray(:, 1)); %find location of max in what's left over
result = filteredarray(maxrow, :) %get the row at location

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by