how to split an array with a periodic set of elements as it reaches to the maximum elements?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Joseph
le 23 Mai 2017
Modifié(e) : Andrei Bobrov
le 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 commentaires
Réponse acceptée
Andrei Bobrov
le 24 Mai 2017
B = mat2cell(A(:)',1,diff(find([true,diff([A(:)'== 5,0]) == -1])));
3 commentaires
Andrei Bobrov
le 25 Mai 2017
Modifié(e) : Andrei Bobrov
le 25 Mai 2017
Please attach your array A with size [32025 x 1] as mat-file.
Plus de réponses (1)
KSSV
le 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)
Voir également
Catégories
En savoir plus sur Matrices and Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!