How to remove some elements from a matrix?

Hi everyone
Now I have a matrix which has two columns and several rows.
How can I remove the rows which contains value that read 0 and create a new matrix?
Any help would be really appreciated!

 採用された回答

Star Strider
Star Strider 2015 年 4 月 23 日

1 投票

The find function with two outputs is helpful here:
M = randi([0 10], 20, 2); % Create Data
[r,~] = find(M == 0); % Rows With ‘0’
M(r,:) = []; % Delete Rows With ‘0’

その他の回答 (1 件)

Stephen23
Stephen23 2015 年 4 月 23 日
編集済み: Stephen23 2015 年 4 月 23 日

1 投票

We can do this simply using all and logical indexing, which is faster than using find and also allows us to allocate directly to a new matrix:
>> M = randi([0,5], 8, 2)
M =
2 4
5 4
4 4
5 2
3 3
0 1
5 4
5 0
>> N = M(all(M~=0,2),:)
N =
2 4
5 4
4 4
5 2
3 3
5 4

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by