Indices to zeros in Matrix

Suppose:
A =
4 5 1 3
5 1 3 4
5 0 0 0
6 0 0 0
4 0 0 0
4 0 0 0
3 0 0 0
I want to find the indices to the rows that contain 0 and I used:
[r,c]=find(A==0)
However, r returned
3
4
5
6
7
3
4
5
6
7
3
4
5
6
7
Why is this so? Shouldn't it return 3,4,5,6,7 only?

 채택된 답변

Evan
Evan 2013년 9월 10일

2 개 추천

[r,c] = find(A == 0) returns in r and c the row and column indices of every single zero in the array. Therefore, you're going to get multiples like that. If you want to find which rows contain zeros rather than where each zero is located, you could do one of the following:
r = find(any(~A,2));
Or:
[r,c] = find(A == 0);
r = unique(r);
The first option is preferable, as it is much faster.

추가 답변 (1개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

RDG
2013년 9월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by