Find a row with all elements satisfying a condition
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Alon Osovsky
le 24 Juin 2020
Commenté : mariajose gomez
le 13 Juil 2021
I have a matrix that looks something like this:
mat = [20, 3; 43 0; 8 3; 100 3; 3 9];
I want to find the rows of the matrix that all of its elements are satisfying a certain condition. For example, if the condition is:
> 10
The result matrix will be:
[8 3; 3 9];
Because those are the only rows in the matrix that both of their elements are smaller then 10. Is there an easy way to achieve this result? Thanks!
0 commentaires
Réponse acceptée
Rasul Khan
le 24 Juin 2020
You can achieve it with a loop. The required matrix will be stored in res
res = []
for i = 1 : size(mat , 1)
if ~any( mat(i , :) > 10 ) % check for the condition , here if any element is > 10, discard the row
res = [res ; mat(i , :)];
end
end
Plus de réponses (1)
darova
le 24 Juin 2020
Use logical indexing
mat = [20, 3; 43 0; 8 3; 100 3; 3 9]
ix = sum(mat<10,2)>1;
a1 = mat(ix,:)
0 commentaires
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!