Clear Filters
Clear Filters

How to extract rows from a large number of rows that matchs a unique element in the column

1 view (last 30 days)
eg
ID Test1 Test2 Test 3
1 10.1 100 100
2 200 0.1 400
3 50 80 20.123
4 1000 2000 3000
5 0 1 10.987
say i have a column vector a = [ 20.123 10.987]' my desired result would be ans=
3 50 80 20.123
5 0 1 10.987
I have a set of column vector a = (42x1)' and wish to filter through a large number of rows in a matrix to extract rows from specific column which matches with one element of my column vector. can we use logical indexing for this?
  6 Comments
Walter Roberson
Walter Roberson on 21 Oct 2018
Ah. When I was reading the question on my phone, I could not see the additional columns in the matrix.

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 21 Oct 2018
Edited: madhan ravi on 21 Oct 2018
>> matrix = [ 1 10.1 100 100
2 200 0.1 400
3 50 80 20.123
4 1000 2000 3000
5 0 1 10.987 ];
a = [ 20.123 10.987]
idx = ismember(matrix,a);
[idx1,~]= find(idx==1);
myreesult = matrix((idx1),:)
a =
20.1230 10.9870
myresult =
3.0000 50.0000 80.0000 20.1230
5.0000 0 1.0000 10.9870
>>
  4 Comments

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!