How to convert simple array to cell array with condition?
    3 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
Respected Sir,
I want to convert the array of size( 1*37) into cell array with constraint i.e., whenever in the array 1 is encountered array should start from next cell. 
For example:
I have a array: 
pop = [1 28 25 15 13 17 1 31 27 8 14 22 18 1 21 6 26 11 16 23 10 19 1 7 4 3 24 29 12 9 1 2 32 20 5 30 1] 
the output in form of cell array should be:

0 commentaires
Réponse acceptée
  Jan
      
      
 le 10 Avr 2022
        
      Modifié(e) : Jan
      
      
 le 10 Avr 2022
  
      pop = [1 28 25 15 13 17 1 31 27 8 14 22 18 1 21 6 26 ...
       11 16 23 10 19 1 7 4 3 24 29 12 9 1 2 32 20 5 30 1];
m = find(pop == 1);
n = numel(m) - 1;
C = cell(1, n);
for k = 1:n
    C{k} = pop(m(k):m(k+1));
end
C
Alterntaively:
C = splitapply(@(x) {x}, pop, cumsum(pop == 1));
But then the trailing 1 is missing and appendig it manually is a mess.
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Operators and Elementary Operations 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!

