Hi all, I think it is bad that matlab doesn't have a goto statement (many people will strongly disagree, but excuse me for the same). I am not a great programmer and I do not know what alternative should be used in the following script:
m1=2140.67; m2=0.2*m1; F=440; k1=0.7*1e6;w1=sqrt(k1/m1);c1=10; c2=0; c3=0;for(k2=1e3:1:1e5) for (w=18:1e-4:18.1) x1 = 1/(((-m1*w^2+k1+k2)*(-m2*w^2+k2) - k2^2))*k2*F*1; % if(abs(x1)>0.0025)
% { goto abc}
if(abs(x1)<c1 && abs(x1)<(0.0025)) c1=x1; c3=k2; else end end %abc:
%continue;
end fprintf('val : x1 = %4.6f m and k2 = %4.6f N/m \n',c1,c3);
There are 2 for loops in this script. I wish that for any value of w, if (abs(x1)>0.0025), the next iteration should begin in outer loop (not the loop of w, so 'continue' is not useful). So what should I do to get next iteration of outer loop i.e. next iteration of k? Had matlab been using goto, I could have employed what is given in % (comments).
Best Answer