deleting selective multiple rows from a data matrix

4 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 ]),:)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!