How to avoid that loop
    4 views (last 30 days)
  
       Show older comments
    
    Alberto Menichetti
 on 3 May 2016
  
    
    
    
    
    Commented: Steven Lord
    
      
 on 3 May 2016
            k(1) = 1;
for i=2:size(k)
  k(i) = k(i-1)*v(i)
end
v(i) is a scalar and it's different on every iteration How could I do that without using a loop?
2 Comments
  the cyclist
      
      
 on 3 May 2016
				
      Edited: the cyclist
      
      
 on 3 May 2016
  
			As written, this loop will never be executed, because size(k) is 1, and
for i = 2:1
  <stuff>
end
will have zero iterations.
Some coding mistake? Maybe you meant length(v)?
Accepted Answer
  the cyclist
      
      
 on 3 May 2016
        If my speculation about what you meant it correct, then
k = cumprod(v)/v(1)
2 Comments
  Steven Lord
    
      
 on 3 May 2016
				No, we understand you. Another approach that doesn't involve division:
v = randperm(8) % Sample data for demonstration purposes
k = cumprod([1 v(2:end)])
More Answers (0)
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!

