Effacer les filtres
Effacer les filtres

Find a row with all elements satisfying a condition

10 vues (au cours des 30 derniers jours)
Alon Osovsky
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!

Réponse acceptée

Rasul Khan
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
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,:)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by