deleting selective multiple rows from a data matrix

2 views (last 30 days)
I want to delete rows of a matrix depending on some specific values of one of its columns. Say, if A=[1,2,3,1;5,6,7,2;9,10,11,3;13,14,15,4]; B=A(:,4);
I want to delete rows of A if B<2 and B>3, that is want the second and third rows of A.
I have tried A(B,:)=[] type commands, but failed.

Accepted Answer

Thomas
Thomas on 10 Apr 2012
A(~(B<2|B>3),:)

More Answers (1)

Leah
Leah on 10 Apr 2012
couple of problems
B<2 & B>3
is always false you need to use a logical index to filter rows of A, B is not logical (all zeros and ones) these commands would work
A(B==2 | B==3,:)
A([2 3],:)
A(logical([0 1 1 0 ]),:)

Products

Community Treasure Hunt

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

Start Hunting!