how to find Place on non zero values in matrix?

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

 Réponse acceptée

Stephen23
Stephen23 le 5 Mar 2018
Modifié(e) : Stephen23 le 5 Mar 2018
>> 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

Plus de réponses (2)

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 commentaire

Tha saliem
Tha saliem le 5 Mar 2018
Hi.. it also solves the problem. thank you for your answer.

Connectez-vous pour commenter.

Jan
Jan le 5 Mar 2018
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)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by