Selecting only some rows of a matrix

1 Ansicht (letzte 30 Tage)
MRC
MRC am 12 Dez. 2013
Beantwortet: Andrei Bobrov am 12 Dez. 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

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 12 Dez. 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,:)

Weitere Antworten (2)

Simon
Simon am 12 Dez. 2013
Bearbeitet: Simon am 12 Dez. 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 am 12 Dez. 2013
A(all(A(:,1:2) >= -1e-3,2) & all(A <= 1e-3,2),:)

Kategorien

Mehr zu Oceanography and Hydrology finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by