How to add specific rows that meet a condition?
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hi,
I have two column vectors dim 98x1 one is the unique values of an array (A) and the other is the percentage that these values occur (B). What I am trying to get is to sum the percentile values that are between 0-1 of the unique values and then 1-2 and so on. So that I have the percentile values of occurrence for everything =<1, =<2, ..., =<26 Here is an example of what I am trying to do,
 %
    A = [0.1 0.5 1.0 1.2 1.6 2.0]' % The unique values
    B = [50.3 3.0 2.5 2.4 1.8 1.4]' % The percentile values
    C = [55.8 5.6] % The percentile values that are in the range specified
So far I have been working with the following loop
%
  for i = 1:size(A,1)
     for j = 0:25
        if A <= i & A >= j
        C(i,j) = sum(B(j,i);
        end
     end
   end
Not entirely sure I I am going the right way about this. If anyone has any advice it would be greatly appreciated.
0 Commenti
Risposte (2)
  Roger Stafford
      
      
 il 15 Apr 2016
        
      Modificato: Roger Stafford
      
      
 il 15 Apr 2016
  
         N = 1:26;
   C =sum(bsxfun(@times,bsxfun(@le,A,N),B));
2 Commenti
  Roger Stafford
      
      
 il 16 Apr 2016
				
      Modificato: Roger Stafford
      
      
 il 16 Apr 2016
  
			@Thomas: My apologies. Forget that solution I gave you. My head was not on straight this morning. There is a valid method using 'histc' and 'accumarray', but you might as well use obvious methods with for-loops for this unless your data is very large. (Let me know if you want to know the 'histc-accumarray' method.)
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices 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!


