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

2 ビュー (過去 30 日間)
RAJKUMAR SAHA
RAJKUMAR SAHA 2023 年 3 月 5 日
編集済み: VBBV 2023 年 3 月 8 日
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 件のコメント
Dyuman Joshi
Dyuman Joshi 2023 年 3 月 5 日
編集済み: Dyuman Joshi 2023 年 3 月 5 日
"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
Walter Roberson 2023 年 3 月 5 日
p_i == p_j;
That is not an assignment statement

サインインしてコメントする。

回答 (2 件)

Pritesh Shah
Pritesh Shah 2023 年 3 月 5 日
Instead of p_j write p(j)

VBBV
VBBV 2023 年 3 月 8 日
編集済み: VBBV 2023 年 3 月 8 日
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
  1 件のコメント
VBBV
VBBV 2023 年 3 月 8 日
You require only one for loop, since the inner for loop will lead to only one iteration,

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDenoising and Compression についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by