# Have implemented for loop corectly in my code?

1 ビュー (過去 30 日間)
Nisar Ahmed 2022 年 5 月 16 日

Hi,
I want to put a for loop in my code: can you please confirm if I have done it correctly? Here is my code:
f_min = 1; % Minimum frequency
f_max = 200; % Maximum frequency
f_int = 1; % Interval
%f = f_min:f_int:f_max; % Frequency range
for ii = f_min:f_int:f_max
Logf = log10(f);
w = 2*pi*f;
I1 = sqrt(1i.*w.*s1).*coth(1i.*w.*s1./2);
I2 = sqrt(1i.*w.*s2).*coth(1i.*w.*s2./2);
b = 1./(1+1./(I1.*g1 + I2.*g2));
E = Eo.*b;
Q = real(E)./imag(E);
Qinv = 1./Q;
v=sqrt(E./rho_b);
VP = (real(1./v)).^-1;
end
##### 2 件のコメント表示非表示 1 件の古いコメント
Nisar Ahmed 2022 年 5 月 16 日
@Star Strider I want to change VP as a function of f and w = 2 pi f, So to compute as a function of w, I need to apply loop.

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

### 採用された回答

KALYAN ACHARJYA 2022 年 5 月 16 日

I don't think, is there any loop needed, it can be avoided, just define the following parameters
s1=..
s2=..
g1=..
g2=..
Eo=..
rho_b=..
More the code:
f_min = 1; % Minimum frequency
f_max = 200; % Maximum frequency
f = f_min:f_max; % Frequency range
Logf= log10(f);
w=2*pi*f;
I1 = sqrt(1i.*w.*s1).*coth(1i.*w.*s1./2);
I2 = sqrt(1i.*w.*s2).*coth(1i.*w.*s2./2);
b = 1./(1+1./(I1.*g1 + I2.*g2));
E = Eo.*b;
Q = real(E)./imag(E);
Qinv=1./Q;
v=sqrt(E./rho_b);
VP=(real(1./v)).^-1;
Here VP is a function of w, you can directly do through vectorized

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

### Community Treasure Hunt

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

Start Hunting!

Translated by