index multiple columns together on different critera

8 views (last 30 days)
I have a maxtrix of 2 columns, I want to pull out a new matrix with all the rows where column 1 is <0.2 and column 2 is >0.2. The row values are matched, both columns need to stay together.
A= [0.09 0.48
0.5 0.1
0.04 0.3]
I want make the new matrix to return
B= [0.09 0.48
0.04 0.3]
I've tried things like these, but I only end up with the first column
idx=A(:,1)<0.2 | A(:,2)>0.2;
B=A(idx)
B=[0.09
.04]
How do I return column 2 as well?

Accepted Answer

Walter Roberson
Walter Roberson on 13 Aug 2020
B=A(idx, :)

More Answers (2)

hosein Javan
hosein Javan on 13 Aug 2020
A= [0.09 0.48
0.5 0.1
0.04 0.3];
idx1 = A(:,1)<0.2 ; idx2 = A(:,2)>0.2;
B(:,1) = A(idx1,1); B(:,2) = A(idx2,2);
% answer in command window
B =
0.0900 0.4800
0.0400 0.3000

madhan ravi
madhan ravi on 13 Aug 2020
Edited: madhan ravi on 13 Aug 2020
“I want to pull out a new matrix with all the rows where column 1 is <0.2 and column 2 is >0.2.”
idx = A(:,1)<0.2 & A(:,2)>0.2;
A(idx, :)

Community Treasure Hunt

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

Start Hunting!