Selecting only some rows of a matrix

11 views (last 30 days)
MRC
MRC on 12 Dec 2013
Answered: Andrei Bobrov on 12 Dec 2013
Hi, I have a matrix A mxn and I want to select only some of its rows satisfying this criterion: A(i,1)<=1e-03 && A(i,1)>=-1e-03 && A(i,2)<=1e-03 A(i,2)>=-1e-03 && A(i,3:end)<= 1e-03. I can't use loops.
Could you help me? Thanks

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 12 Dec 2013
idx=A(:,1)<=1e-03 & A(:,1)>=-1e-03 & A(:,2)<=1e-03 & A(:,2)>=-1e-03 & all(A(:,3:end)<= 1e-03,2)
B=A(idx,:)

More Answers (2)

Simon
Simon on 12 Dec 2013
Edited: Simon on 12 Dec 2013
Hi!
So, what is "i"? Did you mean ":"? I assume ":" here.
Start by looking at the first criterion, you can write
crit1 = A(:, 1) <= 1e-3;
This will give you a logical vector. Do the same with the other criterions and combine them.
Hint: For the last criterion the function "all" is useful.

Andrei Bobrov
Andrei Bobrov on 12 Dec 2013
A(all(A(:,1:2) >= -1e-3,2) & all(A <= 1e-3,2),:)

Community Treasure Hunt

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

Start Hunting!

Translated by