why this loop is not working? Actually p_j value is not changing why?
    5 views (last 30 days)
  
       Show older comments
    
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 Comments
  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.
Answers (2)
  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
1 Comment
  VBBV
      
      
 on 8 Mar 2023
				You require only one for loop, since the inner for loop will lead to only one iteration,
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!



