For loop - what about my min and max values?
    10 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
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 comentarios
  Jan
      
      
 el 11 de Dic. de 2011
				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
      
 el 11 de Dic. de 2011
				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)
Respuesta aceptada
  bym
      
 el 11 de Dic. de 2011
        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)
Más respuestas (0)
Ver también
Categorías
				Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



