Find a row with all elements satisfying a condition

12 Ansichten (letzte 30 Tage)
Alon Osovsky
Alon Osovsky am 24 Jun. 2020
Kommentiert: mariajose gomez am 13 Jul. 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!

Akzeptierte Antwort

Rasul Khan
Rasul Khan am 24 Jun. 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

Weitere Antworten (1)

darova
darova am 24 Jun. 2020
Use logical indexing
mat = [20, 3; 43 0; 8 3; 100 3; 3 9]
ix = sum(mat<10,2)>1;
a1 = mat(ix,:)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by