Matlab while 循环 如何退出

Matlab while 循环 如何退出

主要添加代码,记录循环次数 count=count+1; %循环次数+1 if count>10000 %循环次数过多,强制退出 break end强制跳出循环,从运行结果看,还是一个死循环。所以还要检查自己的判断条件。更改了你的continue,break位置。自己看一下注释clearclc%下面为输入基本数据Hm=2500;%⑤点最高高度Hn=1700;%⑤点最低高度A5=83*pi/180;%计算A角时的初始赋值B2=702;B3=320;L1=1230;L2=1330;L3=1000;L4=400;L5=560;%下面为各点坐标计算公式,以左下角点为(0,0)X1=L5;Y1=B3;%以⑤点进行高度循环,从2500降到1700时(步长为-100),利用华罗庚的0.618优选法建数学模型,计算A角的对应值%下面数学模型已建立,不知如何编制循环语句,将A角求出。for Z=Hm:-100:Hn A6=6*pi/180;G=0.01; A7=A5-A6; count=0;%测试循环次数,检查是否为死循环 while 1 count=count+1; %循环次数+1 if count>10000 %循环次数过多,强制退出 break end A=A5-0.618*(A5-A7); X2=X1+L1*cos(A); Y2=B3+L1*sin(A); X4=0; Y4=B2; L0=sqrt((X2-X4)^2+(Y2-B2)^2);%L0为辅助计算线 A8=acos((L0^2+L2^2-L4^2)/(2*L0*L2))*pi/180; A9=atan((Y2-B2)/(X2-X4))*pi/180; A2=A8+A9; X3=L2*cos(A2); Y3=L2*sin(A2)+B2; A1=atan((Y3-Y2)/(X2-X3))*pi/180;%A1为L3线的水平夹角 X5=X2-(L3+L4)*cos(A1);Y5=Y2+(L3+L4).*sin(A1); FH=Y5-Z; %满足条件,跳出本次循环1 if FH>G A5=A; continue;%返回到A=A5-0.618*(A5-A7); end %满足条件,跳出本次循环2 if FH<-G A7=A; continue;%返回到A=A5-0.618*(A5-A7); endif abs(FH)