What is an alternative FIND function that find indices and values of both ZERO and NONZERO elements in Matlab ?

조회 수: 25 (최근 30일)
Hello,
I am using Matlab and I would like to know how to find indices/values of both zero and nonzero elements of a given vector ? Can anyone help ?
For example:
X = [1 0 2; 0 1 1; 0 0 4];
How can I find indices of the elements in the first raw i.e. '1'; '0'; '2' ?
Thank you!
  댓글 수: 3
Gobert
Gobert 2016년 2월 3일
편집: Gobert 2016년 2월 3일
@Walter, @Kirby, Thanks for your replies. See this:
E = [2, 0, 5, 9];
k = 1: numel(E);
[i,j] = find(E(k))
The output is:
i =
1 1 1
j =
1 3 4
As can be seen, the (i, j) indices for 0 element in E are not provided. How can I also obtain the (i,j) indices for any 0 valued element that can be included (together with other nonzero valued elements) in E ? That's what I want to know.
Thanks again!

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2016년 2월 3일
편집: Stephen23 2016년 2월 3일
>> E = [2, 0, 5, 9];
>> [R,C] = ind2sub(size(E),1:numel(E))
R =
1 1 1 1
C =
1 2 3 4
Or using your original example:
>> X = [1 0 2; 0 1 1; 0 0 4];
>> [R,C] = ind2sub(size(X),1:numel(X))
R =
1 2 3 1 2 3 1 2 3
C =
1 1 1 2 2 2 3 3 3
or just the first row (as your question request) is very simple:
>> C = 1:size(X,2)
C =
1 2 3
>> R = ones(size(C))
R =
1 1 1

추가 답변 (1개)

Image Analyst
Image Analyst 2016년 2월 3일
Try this:
X = [1 0 2; 0 1 1; 0 0 4]
[zeroRows, zeroColumns] = find(X == 0)
[nonZeroRows, nonZeroColumns] = find(X ~= 0)

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by