how to find Place on non zero values in matrix?

조회 수: 1 (최근 30일)
Tha saliem
Tha saliem 2018년 3월 5일
댓글: Tha saliem 2018년 3월 5일
hey all
i need to find places of 1's in matrix A:
A = [0,0,0,1,0,0,1,1,0;0,0,1,0,0,0,0,0,1;0,0,0,0,1,0,0,0,0]
result = {[4,7,8];[3,9];5}
please help

채택된 답변

Stephen23
Stephen23 2018년 3월 5일
편집: Stephen23 2018년 3월 5일
>> A = [0,0,0,1,0,0,1,1,0;0,0,1,0,0,0,0,0,1;0,0,0,0,1,0,0,0,0];
>> [R,C] = find(A);
>> X = accumarray(R,C,[],@(v){v.'});
>> X{:}
ans =
4 7 8
ans =
3 9
ans =
5

추가 답변 (2개)

javad ebrahimi
javad ebrahimi 2018년 3월 5일
HI dear Tha saliem
I hope that I have been able to understand what you mean, and the following code can help you
clc;clear;close all
A = [0,0,0,1,0,0,1,1,0;0,0,1,0,0,0,0,0,1;0,0,0,0,1,0,0,0,0];
B=find(A~=0)
size=size(A)
[Row,Col]=ind2sub(size,B)
result={Col(Row==1),Col(Row==2),Col(Row==3)}
  댓글 수: 1
Tha saliem
Tha saliem 2018년 3월 5일
Hi.. it also solves the problem. thank you for your answer.

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


Jan
Jan 2018년 3월 5일
A = [0,0,0,1,0,0,1,1,0;0,0,1,0,0,0,0,0,1;0,0,0,0,1,0,0,0,0]
result = cellfun(@find, num2cell(A, 2), 'UniformOutput', 0)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by