matlab if返回,matlab中多个if嵌套怎么在不满足条件返回到同一步

这篇博客探讨了MATLAB代码中使用if语句进行条件判断和嵌套控制的问题。作者通过示例代码展示了如何在不满足条件时返回到同一循环步骤。在代码中,涉及了角度转换、几何计算以及多重循环结构,以寻找满足特定条件的变量组合。
摘要由CSDN通过智能技术生成

这是我自己写的代码,不知道哪里出问题了

syms r1 r2 rb1 rb2 a ra1 ra2 y Vy V1 V2 y02 ha1 ha2 d1 d2 da1 da2 q1 q2 vo uo u02 u02o x2 G Gs i;

m=3;z1=51;z2=52;z0=25;ha=0.8;u=20;x0=0;i=1;A=[];

v=u/180*pi;

r1=m*z1/2; r2=m*z2/2;rb1=r1*cos(v);rb2=r2*cos(v);a=(z1+z2)*m/2;ha1=ha*m; ha2=ha*m; ra2=r2-ha2; ra1=r1-ha1;

for uo=1:0.01:90

vo=uo/180*pi;

ao=a*cos(v)/cos(vo);

y=(ao-a)/m;

for u02o=1:0.01:90

v02o=u02o/180*pi;

V2=((tan(v)-v)-(tan(v02o)-v02o))*(z2-z0);

V1=((tan(v)-v)-(tan(vo)-vo))*(z2-z1)-V2;

x1=V1/(2*tan(v));

y02=((z2-z0)/2)*(cos(v)/cos(v02o)-1);

Vy=y-y02+x1;

if  Vy>0;

G=ra2+ao-ra1;

else

continue;

end ;

if G>0;

d1=m*z1;d2=m*z2;da1=(z1+2*ha)*m;da2=(z2+2*ha)*m;

ua1=acos(d1*cos(u)/da1);ua2=acos(d2*cos(u)/da2);

va1=ua1*pi/180; va2=ua2*pi/180;

q1=acos((ra2^2-ra1^2-ao^2)/(2*ra1*ao));

q2=acos((ra2^2-ra1^2+ao^2)/(2*ra2*ao));

ca=(z1*(tan(va1)-tan(vo))-z2*(tan(va2)-tan(vo)))/(2*pi);%ca为重合度

else

continue;

end;

if abs(cos(q1))<=1 && abs(cos(q2))<=1 && ca>1;

Gs=z1*(q1+tan(va1)-va1)-z2*(q2+tan(va2)-va2)+(tan(uo)-uo)*(z2-z1);

else

continue;

end ;

if abs(Gs-0.05)<0.001;

A(i,1)=x1;A(i,2)=y02;A(i,3)=vo;A(i,4)=v02o;A(i,5)=a;A(i,6)=ao;A(i,7)=ca;A(i,8)=Gs;

i=i+1;

else

continue;

end ;

end

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值