ppfi 发表于 2007-5-31 10:31

请大家帮我看看程序中的问题

function Fcylsur()
%    Fcsurface(z,a)表示圆柱体上两个单位微元的角系数。
%    zcyl表示圆柱体的深度向量;icyl表示微元点A2的位置。
r=610;
%    圆柱体的半径,单位mm。
b=r;a=sqrt(2)./2.*r;
syms alpha bata sigma1 sigma2 ups downs data
alpha=(0:pi./120:pi./4);
if alpha>=0&alpha<=pi./6
   sigma1=3.*pi./4-alpha;
   bata=atan(b.*sin(sigma1)./(a+b.*cos(sigma1)));
   downs=(2.*sigma1+alpha-pi).*120./pi;
   sigma2=3.*pi./4+alpha;
   bata=atan(b.*sin(sigma2)./(a+b.*cos(sigma2)));
   ups=(pi-2.*sigma2+alpha).*120./pi;
elseif alpha>=pi./6&alpha<=pi./4
   sigma1=3.*pi./4-alpha;
   bata=atan(b.*sin(sigma1)./(a+b.*cos(sigma1)));
   downs=(2.*sigma1+alpha-pi).*120./pi;
   sigma2=pi./4+alpha;
   bata=atan(b.*sin(sigma2)./(a+b.*cos(sigma2)));
   ups=(pi-2.*sigma2+alpha).*120./pi;
end
downs
ups


上面的这段昨天还能给出downs和ups这两个向量 可后来不知道我改了下哪里 就不能出结果了 好像条件语句那一块根本就不运行了。
高手帮帮忙啊

[ 本帖最后由 eight 于 2007-5-31 11:23 编辑 ]

咕噜噜 发表于 2007-5-31 11:00

回复 #1 ppfi 的帖子

你的程序好乱啊,你先看看基础的书吧,把常量数和矩阵分清楚。类似于这类问题sigma1=3.*pi./4-alpha;太不应该了,你编写m函数?你为什么符号变量和数值变量同时使用那?不好吧

lxq 发表于 2007-5-31 11:11

变量应该分清
加一个for语句可以的
syms bata sigma1 sigma2 data
alpha=(0:pi./120:pi./4);
for i=1:length(alpha)
...if   
elseif
end
...
end
页: [1]
查看完整版本: 请大家帮我看看程序中的问题