フィルターのクリア

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

1 回表示 (過去 30 日間)
Beibit Sautbek
Beibit Sautbek 2016 年 7 月 21 日
編集済み: Stephen23 2016 年 7 月 21 日
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 Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by