selecting different criteria for logicals

I have a 100 x 2 matrix and would need to filter those rows that has 2 in the first column, and 3 in the second column into a logical.
How should I go about this? Thank you! :)

 Accepted Answer

L=data(:,1)==2 & data(:,2)==3;

6 Comments

Another option:
L = all(data(:, [1, 2]) == [2, 3]) %R2016b or later
i realized the matrix is a struct, == does not seem to work :/
Then you need to extract a matrix from the struct. What is the actual description of your data?
its a 1x 100 struct, with 3 fields (the 2nd and 3rd field to be extracted to a new matrix of 100 X2)
%create some data
s=struct;
for n=1:100
s(1,n).field_a=randi(10,1,1);
s(1,n).field_b=randi(10,1,1);
s(1,n).field_c=randi(10,1,1);
end
data=[s.field_b;s.field_c]';
L=data(:,1)==2 & data(:,2)==3;
Thank you! I got it :)

Sign in to comment.

More Answers (0)

Categories

Asked:

on 28 Aug 2019

Commented:

on 30 Aug 2019

Community Treasure Hunt

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

Start Hunting!