I had a code which ran but wasn't giving me the right output so I changed an if lop to use a while loop instead and now when I run the code it runs indefinitely and I'm not sure why or what I can do to fix it. Have tried closing & reopening, removing while loop and then running without, using a different computer but all to no avail! Any help greatly appreciated! Cheers P.s, have tried to use the {} brackets but not sure it's all coming out right :/
Code {
m=4000; %kg
g=9.81; L=4; %m
r_min=1.2; %mr_max=2.2; %mr=linspace(1.2,2.2,37); %mtheta_min=-20; %degrees
theta_max=80; %degreestheta=linspace(-20,80,37); %degreesphi=linspace(0,180,37); %degreesgamma=phi+20; %degrees%-----------------------------------
F_max=0;for i=1:37 c_2(i)=((r_max^2)-(r_min^2))./(cosd(gamma(i)+theta_min)-cosd(gamma(i)+theta_max)); c_1(i)=(r_min^2)+c_2(i).*cosd(gamma(i)+theta_max); a(i)=real(0.5*(((c_1(i)+c_2(i)).^(1/2))+((c_1(i)-c_2(i)).^(1/2)))); b(i)=real(c_2(i)/(2*a(i))); for j=1:37 r(i,j)=sqrt((a(i)^2)+(b(i)^2)-(2*a(i)*b(i)*cosd(gamma(i)+theta(j)))); F(i,j)=(r(i,j)*m*g*L*cosd(theta(j)))/(b(i)*a(i)*sind(gamma(i)+theta(j))); plot(theta,F(i,j)); end while F(i,j)>F_max F_max_new=F(i,j); end F_max=F_max_new end
}
Best Answer