how to count number of repeating's in data series.
    22 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
for example my matrix A=[22 24 24 36 36 36 48 48 48 48 24 33 22 22]; i need to count how many twos, threes, four time repeating's etc
0 Commenti
Risposte (4)
  Massimo Zanetti
      
 il 3 Ott 2016
        
      Modificato: Massimo Zanetti
      
 il 3 Ott 2016
  
      This code
A = [22 24 24 36 36 36 48 48 48 48 24 33 22 22]';
C = accumarray(A,1);
I = unique(A);
counts = [I,C(I)]
returns
out = 22     3
     24     3
     33     1
     36     3
     48     4
  Andrei Bobrov
      
      
 il 4 Ott 2016
        
      Modificato: Andrei Bobrov
      
      
 il 4 Ott 2016
  
      A=[22 24 24 36 36 36 48 48 48 48 24 33 22 22];
V = A(:);
[~,~,c] = unique(V);
t = diff([0;c])~= 0;
ix = cumsum(t);
out = [V(t),accumarray(ix(:),1)];
out2 = [num2cell((1:max(out(:,2)))'),...
           accumarray(out(:,2),out(:,1),[],@(x){sort(x(:)')})];
3 Commenti
  Sylwia Kaduk
 il 21 Mag 2020
				Dear Andrei, 4 years later your code is very helpful in part of my PhD. Thanks a lot. 
  Adrian Stannard
      
 il 3 Ott 2016
        
      Modificato: Adrian Stannard
      
 il 4 Ott 2016
  
      I think I understand what you want - it is the successive re-occurrences of a number.
Array=[22 24 24 36 36 36 48 48 48 48 24 33 22 22]; 
Array(find(diff(Array)==0))
This returns only the repeated elements from the Array after the first occurrence.
You could go further, for example use:
counts=hist(Array(find(diff(Array)==0)))
This gives you the how many times they are repeated. Alternatively:
Array2 = Array(find(diff(Array)==0));
Array3= zeros (size(Array2));
for i = 1:length(Array2)
Array3(i) = sum(Array2==Array2(i));
end
Array3=Array3+1
Array2=Array2([1,diff(Array2)]~=0);
Array3=Array3([1,diff(Array3)]~=0);
will return:
24 36 48 22
2 3 4 2
5 Commenti
Vedere anche
Categorie
				Scopri di più su Matrix Indexing in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




