Effacer les filtres
Effacer les filtres

Selecting only some rows of a matrix

2 vues (au cours des 30 derniers jours)
MRC
MRC le 12 Déc 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

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 12 Déc 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,:)

Plus de réponses (2)

Simon
Simon le 12 Déc 2013
Modifié(e) : Simon le 12 Déc 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 le 12 Déc 2013
A(all(A(:,1:2) >= -1e-3,2) & all(A <= 1e-3,2),:)

Catégories

En savoir plus sur Oceanography and Hydrology dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by