Filter löschen
Filter löschen

how to find Place on non zero values in matrix?

2 Ansichten (letzte 30 Tage)
Tha saliem
Tha saliem am 5 Mär. 2018
Kommentiert: Tha saliem am 5 Mär. 2018
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

Akzeptierte Antwort

Stephen23
Stephen23 am 5 Mär. 2018
Bearbeitet: Stephen23 am 5 Mär. 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

Weitere Antworten (2)

javad ebrahimi
javad ebrahimi am 5 Mär. 2018
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 Kommentar
Tha saliem
Tha saliem am 5 Mär. 2018
Hi.. it also solves the problem. thank you for your answer.

Melden Sie sich an, um zu kommentieren.


Jan
Jan am 5 Mär. 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