Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How can I plot this equation?

Asked by Moj

Moj (view profile)

on 21 Aug 2013

I want to plot a figure but I don't know how to write "s" string with a loop. Here is my code

k1=5.3e-12;
k3=7.3e-12;
mu=pi*4e-7;
kapa=9.56e-7;
theta_m1 = 0;
theta_m2 = 0.44;
for theta_m= theta_m1:0.1:theta_m2
  fun = @(x)(((k1*cos(x).^2 + k3*sin(x).^2)./(sin(theta_m)^2-sin(x).^2)).^0.5);
  s(:) = integral(fun,0,theta_m);
end
 for  theta_m= theta_m1:0.1:theta_m2
 plot((mu/kapa)^0.5 *(2/1e-6)* s(:) ,radtodeg(theta_m))
 hold on
end 

0 Comments

Moj

Moj (view profile)

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson

Walter Roberson (view profile)

on 21 Aug 2013
thetas = theta_m1 : 0.1 : theta_m2
for K = length(thetas)
  theta_m = thetas(K);
  fun = @(x)(((k1*cos(x).^2 + k3*sin(x).^2)./(sin(theta_m)^2-sin(x).^2)).^0.5);
  s(K) = integral(fun,0,theta_m);
end

2 Comments

Moj

Moj (view profile)

on 21 Aug 2013

But why can't this code plot this equation?

Walter Roberson

Walter Roberson (view profile)

on 21 Aug 2013

Leave out the "for" loop around the plot

plot((mu/kapa)^0.5 *(2/1e-6)* s(:) ,radtodeg(theta_m))

Are you asking why your original code did not plot? It is because you overwrote all of s each time through your loop.

Walter Roberson

Walter Roberson (view profile)

Contact us