how can i store a value of a calculation in a loop
    5 views (last 30 days)
  
       Show older comments
    
Hi I have the following loop.
for k=1:length(hplid)
x=hplid(k);
q=sort(latency(hpl==x));
size(q);
figure;
plot(q,(1:numel(q))/numel(q))
title(['HPL ', num2str(x), ' Latency']);
xlabel('Seconds');
ylabel('% Percentile');
quant=interp1((1:numel(q))/numel(q),q,[.9 .95 .99]);
disp( '90%, 95% and 99% latency');
disp(quant); 
end
how can I store the value of quants to an array everytime the loop is exectued. Right quants only store the calculation of the last iteration of the loop.
Thank you
1 Comment
Answers (2)
  Jan
      
      
 on 5 Oct 2017
        
      Edited: Jan
      
      
 on 5 Oct 2017
  
      Store the vectors in a matrix using the loop counter as index:
quant = zeros(length(hplid), 3);  % Pre-allocate!!!
for k = 1:length(hplid)
   ...
   quant(k, :) = interp1((1:numel(q))/numel(q),q,[.9 .95 .99]);
   disp(quant(k, :)); 
end
Note: The line "size(q);" is useless.
2 Comments
  Jan
      
      
 on 6 Oct 2017
				@Ketan: Please post the complete error message and the relevant part of the code. I can neither guess, which line causes the error, nor which variable has the type "duration". Note that the message contains a hint about the solution already.
  jean claude
      
 on 5 Oct 2017
        try this put it just before end of the loop
quantvalue=[];
quantvalue=[quantvalue quant];
2 Comments
  Walter Roberson
      
      
 on 5 Oct 2017
				This works, but is not efficient. Each time something is added on to the end of quantvalue, MATLAB has to look for new memory long enough to store the combined results, and copy the existing quantvalue over and then copy in the new values, and then throw away the existing quantvalue. When possible, it is much more efficient to allocate the memory to store all of the results and write them in as you go.
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!