For loop - what about my min and max values?

1 次查看(过去 30 天)
For loop - what about my min and max values? I'm using a for loop and although my plot is right, I'm only seeing my maximum x-axis value in the Workspace Max column. Is there a way to have the Min and Max columns actually correct?
Many thanks
iter=1;
for f=50:1000
rho_a=1.2041;
sigma=11000;
phi=0.99;
alpha=1;
c=343.26;
i=sqrt(-1);
L=0.1;
a=0.03;
k_a=(2*pi*f)/c;
k_2=((2*pi*f)/c)*sqrt(alpha-((i*sigma*phi)/(2*pi*f*rho_a)));
z_c_2=((rho_a*c)/phi)*sqrt(alpha-((i*sigma*phi)/(2*pi*f*rho_a)));
z_1=(z_c_2*cot(k_2*L)*(cos(k_a*a)+(i/(rho_a*c))*sin(k_a*a)))/(i*cos(k_a*a)-(1/(rho_a*c))*sin(k_a*a));
R=((z_1/(rho_a*c))-1)/(1+(z_1/(rho_a*c)));
Rrec(iter)=R;
AbsCoef=1-(real(R))^2;
AbsCoefrec(iter)=AbsCoef;
z_1rec(iter)=z_1;
iter=iter+1;
end
plot(50:1000,AbsCoefrec)
  2 个评论
Jan
Jan 2011-12-11
What is "the maximum x-axis value" and what is the "Workspace Max column"? And how is the correctness of the "Min and Max columns" defined? What the is the relation between the question and the code?
To improve the code (dramatically!) look in this forum for the term "pre-allocation".
David Young
David Young 2011-12-11
i is already defined in Matlab - as long as you haven't redefined it earlier in the program you don't need to do i = sqrt(-1)

请先登录,再进行评论。

采纳的回答

bym
bym 2011-12-11
Your x axis is the loop variable f, which can only take on one value at a time, thus the min and max are the same. To do what you want, you would have to modify your code something like this
freq = 50:1000;
AbsCoefrec = zeros(size(freq)); % preallocate!
for f = freq
% ---insert code here---
end
plot(freq,AbsCoefrec)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by