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

1 次查看(过去 30 天)
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?

采纳的回答

Stephen23
Stephen23 2016-7-21
编辑:Stephen23 2016-7-21
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 个评论
Stephen23
Stephen23 2016-7-21
编辑:Stephen23 2016-7-21
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)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by