Find a row with all elements satisfying a condition
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Alon Osovsky
el 24 de Jun. de 2020
Comentada: mariajose gomez
el 13 de Jul. de 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 comentarios
Respuesta aceptada
Rasul Khan
el 24 de Jun. de 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
Más respuestas (1)
darova
el 24 de Jun. de 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 comentarios
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!