Stop a sum of numbers until a certain value is reached
    4 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Pilar Jiménez
 le 21 Oct 2019
  
    
    
    
    
    Commenté : Pilar Jiménez
 le 22 Oct 2019
            If I have defined values
Nmax = 15;
A = [2 5 4 6 1];
I want to make a sum of each value of A in the order in which it is found until it reaches Nmax, if the value is equal to or greater than Nmax the sum stops and the number or numbers that have been pending to be added are saved in another vector B.
How did you get the sum to stop and tell me the index of the vector at which it stopped to be able to save the values forward in the other vector?
Thank you in advance for your help
0 commentaires
Réponse acceptée
  Image Analyst
      
      
 le 21 Oct 2019
        You can use cumsum() to do it vectorized, like most MATLABers would:
Nmax = 15;
A = [2 5 4 6 1];
ca = cumsum(A)  % Sum them all up
lastIndex = find(ca <= Nmax, 1, 'last') % Last index before the sum would exceed Nmax.
% Show what elements they were "Pending" (whatever that means in this context).
B = A(lastIndex + 1 : end)  % The remaining numbers
Plus de réponses (0)
Voir également
Catégories
				En savoir plus sur Matrix Indexing 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!

