# why this loop is not working? Actually p_j value is not changing why?

1 view (last 30 days)
RAJKUMAR SAHA on 5 Mar 2023
Edited: VBBV on 8 Mar 2023
n = input('please enter number of strips :');
for i = 1:n
for j = i
p_i = 0
p_j = p_i + D/(2*n)
epsilon_ci = (epsilon_max/xu)*(xu-p_j)
sigma_ci = 0.45*fc*[2*(epsilon_ci/0.002)-(epsilon_ci/0.002)^2]
p_i == p_j;
end
end
##### 2 CommentsShow NoneHide None
Dyuman Joshi on 5 Mar 2023
Edited: Dyuman Joshi on 5 Mar 2023
"why this loop is not working?"
It is working.
"Actually p_j value is not changing why?"
Because you are over-writing p_j with every iteration.
It is difficult to make any suggestions as it is not clear what you are trying to do. Format your code properly, mention values of variables and specify what you want to do with this code.
Walter Roberson on 5 Mar 2023
p_i == p_j;
That is not an assignment statement

Pritesh Shah on 5 Mar 2023
Instead of p_j write p(j)

VBBV on 8 Mar 2023
Edited: VBBV on 8 Mar 2023
n = 10;% e.g. input number
epsilon_ci = 0.001;
epsilon_max = 0.01;
xu = 2;
fc = 100;
D = 1.1;
p_i = 0; %outside for loop
for i = 1:n
p_j(i) = p_i + D/(2*n);
epsilon_ci = (epsilon_max/xu)*(xu-p_j(i));
sigma_ci = 0.45*fc*(2*(epsilon_ci/0.002)-(epsilon_ci/0.002)^2);
p_i = p_j(i); % assign new p_i
end
p_j
p_j = 1×10
0.0550 0.1100 0.1650 0.2200 0.2750 0.3300 0.3850 0.4400 0.4950 0.5500
VBBV on 8 Mar 2023
You require only one for loop, since the inner for loop will lead to only one iteration,