MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

Deleting Nonzero elements in each row

dan berkowitz さんによって質問されました 2017 年 10 月 17 日
最新アクティビティ Cedric Wannaz
さんによって コメントされました 2017 年 10 月 18 日
Hi,
I have a 5 x 5 matrix with the 2 zeros in each row. How can I delete the nonzero elements from each row?
Any help would be appreciated. Thanks,
DB

  0 件のコメント

サインイン to comment.

タグ

2 件の回答

回答者: Walter Roberson
2017 年 10 月 17 日
 採用された回答

YourNewMatrix = zeros( size(YourMatrix,1), 2 );
After deleting all the non-zero elements of each row, only zeros are going to be left. You might as well construct an all-zero matrix directly.

  1 件のコメント

Cedric Wannaz
2017 年 10 月 17 日
Ah! I had not read the question well enough ;)

サインイン to comment.


回答者: Cedric Wannaz
2017 年 10 月 17 日
編集済み: Cedric Wannaz
2017 年 10 月 17 日

Here is one way:
>> A
A =
0 0 5 5 4
1 0 1 3 0
4 2 0 0 3
5 5 0 0 3
0 3 1 0 1
>> [~, ~, v] = find( A.' ) ;
>> B = reshape( v, 3, [] ).'
B =
5 5 4
1 1 3
4 2 3
5 5 3
3 1 1
.. and I don't know if you posted another delete question that was pretty close an hour ago or if it was someone else, but an answer was:
C = max((A == permute(B(:,1),[3,2,1])) .* permute(1:size(B,1), [1,3,2]), [], 3)
for
A = [2 3 4; 4 5 6; 7 8 9] ;
B = [7 5; 3 4; 4 3; 8 4; 9 4] ;

  1 件のコメント

Cedric Wannaz
2017 年 10 月 18 日
Actually if you read again your question Dan, Walter gave you the correct answer.

サインイン to comment.



Translated by