Borrar filtros
Borrar filtros

How to delete row from matrix, which has values 0 and 4?

1 visualización (últimos 30 días)
Beibit Sautbek
Beibit Sautbek el 21 de Jul. de 2016
Editada: Stephen23 el 21 de Jul. de 2016
I have a matrix:
u =
0 0 4
0 3 0
0 3 4
2 0 0
2 0 4
2 3 0
2 3 4
I need to delete a row which has value 4 and other values equal to 0.
So, my result should delete the first row, where [0 0 4]. How Can I do?
I did this code below, but it doesn't work.
d=length(u);
if u(1:d,:)==0 & u(1:d,:)==4
u(1:d,:) = []
end
Could anyone help me?

Respuesta aceptada

Stephen23
Stephen23 el 21 de Jul. de 2016
Editada: Stephen23 el 21 de Jul. de 2016
u = [...
0 0 4
0 3 0
0 3 4
2 0 0
2 0 4
2 3 0
2 3 4]
idx = all(u==0 | u==4, 2)
out = u(~idx,:)
  1 comentario
Stephen23
Stephen23 el 21 de Jul. de 2016
Editada: Stephen23 el 21 de Jul. de 2016
Addendum: if you need to check that in any row exactly one element has the value four, and all remaining elements have the value zero, then this will work:
idx = size(u,2)-1==sum(u==0,2) & 1==sum(u==4,2)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by