Se, come sembra dall'equazione, il valore di u_w(i) non dipende dai valori precedenti (u_W i-1) ecc.) divresti resetare a 0 il valore di g prima del loop interno.
n=5;
epsilon=ones(n,1);
u_w=zeros(n,1);
epsilon_0=0;
g=0;
k=1;
for i=1:n
g=0;
for j=1:(i-1)
g=g+epsilon(j);
fprintf('Inner loop: i= %d g= %d\n',i,g);
end
fprintf('\nOuter loop: i= %d g= %d\n\n\n',i,g)
%u_w=(i)=k*(epsilon_0+2*g+epsilon(i))
end
In questo modo ottieni i valori valori di g attesi (i=1,2,3,4,... --> g=0,1,2,3,..):
Outer loop: i= 1 g= 0
Inner loop: i= 2 g= 1
Outer loop: i= 2 g= 1
Inner loop: i= 3 g= 1
Inner loop: i= 3 g= 2
Outer loop: i= 3 g= 2
Inner loop: i= 4 g= 1
Inner loop: i= 4 g= 2
Inner loop: i= 4 g= 3
Outer loop: i= 4 g= 3
Inner loop: i= 5 g= 1
Inner loop: i= 5 g= 2
Inner loop: i= 5 g= 3
Inner loop: i= 5 g= 4
Outer loop: i= 5 g= 4