how to split an array with a periodic set of elements as it reaches to the maximum elements?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Joseph
am 23 Mai 2017
Bearbeitet: Andrei Bobrov
am 25 Mai 2017
lets say i have an array with periodic set of elements such as below:
A=[2 2 2 3 3 4 4 5 5 5 1 1 1 2 2 2 2 3 3 4 4 4 4 5 5 1 1 2 3 3 4 4 4 5 5];
i want to split Array A in to 3 separate arrays(in this case) as it reach to element 5 as below:
B1=[2 2 2 3 3 4 4 5 5 5];
B2=[1 1 1 2 2 2 2 3 3 4 4 4 4 5 5];
B3=[1 1 2 3 3 4 4 4 5 5];
i greatly appreciate your help
thank you
0 Kommentare
Akzeptierte Antwort
Andrei Bobrov
am 24 Mai 2017
B = mat2cell(A(:)',1,diff(find([true,diff([A(:)'== 5,0]) == -1])));
3 Kommentare
Andrei Bobrov
am 25 Mai 2017
Bearbeitet: Andrei Bobrov
am 25 Mai 2017
Please attach your array A with size [32025 x 1] as mat-file.
Weitere Antworten (1)
KSSV
am 24 Mai 2017
A=[2 2 2 3 3 4 4 5 5 5 1 1 1 2 2 2 2 3 3 4 4 4 4 5 5 1 1 2 3 3 4 4 4 5 5];
didx = diff(A==5) ;
idx = find(didx==-1) ;
idx = [0 idx length(A)] ;
N = length(idx)-1 ;
iwant = cell(N,1) ;
for i = 1:N
iwant{i} = A(idx(i)+1:idx(i+1)) ;
end
celldisp(iwant)
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!