MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 长度计算求助 (https://www.labfans.com/bbs/showthread.php?t=11017)

zuiai996 2010-03-14 13:55

长度计算求助
 
。.[IMG]C:\Documents and Settings\Administrator\桌面.sshot-3.png[/IMG]q=0;r=0.2;e=0.4;
t=0;
w1=2;w2=1;
s=0;
x=zeros(1,5000);
x(1)=r*cos(q)+e;
y=zeros(1,5000);
y(1)=0;
for i=1:5000
t=t+pi/500;
x(i+1)=r*cos(q+w2*t-w1*t)+e*cos(w1*t);
y(i+1)=r*sin(q+w2*t-w1*t)+e*sin(w1*t);
if (x(i)^2+y(i)^2)^0.5>0.3
s=s+((x(i+1)-x(i))^2+(y(i+1)-y(i))^2)^0.5;
else
s=s+0;
end
s
这段程序的目的是求一段长度,不过这个长度要先经过比较,这个点的距离与圆心(即原点)的距离>0.3的才加入到总长度中,不足0.3的舍去
就是求在0.3的圆外的距离的长度,请大家看看我哪里错了,谢谢大侠,谢谢!

mathjiang 2010-03-16 21:32

回复: 长度计算求助
 
把错误信息贴出来。
似乎少了一个 end.

mathjiang 2010-03-16 21:36

回复: 长度计算求助
 
可以运行了(删除了几个多余的语句):
q=0; r=0.2; e=0.4; t=0;
w1=2; w2=1; s=0;
x=zeros(1,5000);
x(1)=r*cos(q)+e;
y=zeros(1,5000);
for i=1:5000-1
t=t+pi/500;
x(i+1)=r*cos(q+w2*t-w1*t)+e*cos(w1*t);
y(i+1)=r*sin(q+w2*t-w1*t)+e*sin(w1*t);
if (x(i)^2+y(i)^2)^0.5>0.3
s=s+((x(i+1)-x(i))^2+(y(i+1)-y(i))^2)^0.5;
end
end
s


所有时间均为北京时间。现在的时间是 14:00

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.