# How can I create a nested loop ?

577 views (last 30 days)
Samantha Cepeda on 9 Apr 2018
Please, I'm trying to solve this problem: Create two “for loops”, one for i running from 1 to 5 by 1 and the other nested inside the first for j running from 1 to 8 by 1. Inside the nested loop, calculate the sum of the current I and j values and output the sum to the user followed by a tab.
I tried and did this:
clear, clc
i=0; j=0;
for i = 1:1:5 for j = 1:1:8
sum(i,j) = i + j;
end
end
fprintf ( '%g \t', sum)
I want to see if I did it right, I'm still confused on "sum" value. Thank you

Von Duesenberg on 9 Apr 2018
Quick comment (I suppose this is homework): you don't need to initialize your i and j (BTW it's better to avoid such variable names) before the loop. And the step size of 1 is the default in a for loop so you don't have to state it explicitly. It seems that you want to store the result in a variable called "sum"... Matlab has a built-in function with the same name, so you'd better avoid this. You should initialize an array (e.g. with the zeros function) before the loop. Hope this helps.
Samantha Cepeda on 9 Apr 2018
clear, clc
for i = 1:5
for j = 1:8
b(i,j) = i + j;
end
end
fprintf ( '%g \t', sum)
yes, it is a homework. I took C++ like two years ago and I'm using Matlab now. I'm a little bit lost and worried. Thank you for your help. I didn't quite understand when you referred to 'You should initialize an array (e.g. with the zeros function) before the loop.' What's the zeros function? I've seen people using j=0 or i=0 at the beginning, is that a case when I need to initialize a variable or not at all?

Von Duesenberg on 9 Apr 2018
Here is a possible solution ; adapt it if it doesn't quite do what you had in mind :
iMax = 5;
jMax = 8;
myArray = zeros(iMax, jMax);
for iIdx = 1:iMax
for jIdx = 1:jMax
myArray(iIdx,jIdx) = iIdx + jIdx;
end
end

#### 1 Comment

Samantha Cepeda on 10 Apr 2018
Thank you so much!

if we have double sigma used for nested loop with energy formula how coulid we implment in matalab like we have an equation 