Problems with double looping
    13 views (last 30 days)
  
       Show older comments
    
    Armando MAROZZI
 on 8 Apr 2020
  
    
    
    
    
    Edited: Andrei Bobrov
      
      
 on 8 Apr 2020
            I am trying to implement this double loop. There is lot of material online on double looping in matlab but I don't manage to make it work.
This is my code:
debt = nan(49,1)
for j = -(6:12)
    for i = 2:8
         debt(j, i) = ((1 + 0.93) - (1 + j)) + 134.77 + (i - 3.3)
    end
end
I would like to be able to save debt as a 49x1 vector.
What's wrong with my loop?
Thanks
0 Comments
Accepted Answer
  Andrei Bobrov
      
      
 on 8 Apr 2020
        
      Edited: Andrei Bobrov
      
      
 on 8 Apr 2020
  
      Just:
ii = 2:8;
jj = -(6:12);
debt = 132.4 - jj(:) + ii(:)';
debt = debt(:);
or with for-loop:
ii = 2:8;
jj = -(6:12);
debt = nan(7);
for j = 1:7
    for i = 1:7
         debt(j, i) = 132.4 - jj(j) + ii(i);
    end
end
4 Comments
  Andrei Bobrov
      
      
 on 8 Apr 2020
				
      Edited: Andrei Bobrov
      
      
 on 8 Apr 2020
  
			Variant:
ii = 2:8;
jj = -(6:12);
[j,i] = ndgrid(jj,ii);
debt = 132.4 - j(:) + i(:);
other
n = 7;
ii = (2:8)';
jj = -(6:12)';
debt = 132.4 - jj(kron((1:n)',ones(n,1))) + ii(kron(ones(n,1),(1:n)'));
More Answers (0)
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
