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

1 vue (au cours des 30 derniers jours)
Beibit Sautbek
Beibit Sautbek le 21 Juil 2016
Modifié(e) : Stephen23 le 21 Juil 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?

Réponse acceptée

Stephen23
Stephen23 le 21 Juil 2016
Modifié(e) : Stephen23 le 21 Juil 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 commentaire
Stephen23
Stephen23 le 21 Juil 2016
Modifié(e) : Stephen23 le 21 Juil 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)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by