关于matlab的循环问题

用下面的程序得到的是一个点但是我有一组u和v的数据如何代入程序得到一组对应的坐标呢symsuvu=64;v0.3273;g=pi/9;m=pi/9;a=100;p=2.1... 用下面的程序得到的是一个点 但是我有一组u和v的数据如何代入程序得到一组对应的坐标呢
syms u v
u=64;v0.3273;g=pi/9;m=pi/9;a=100;p=2.125;
x=u*cos(u*cos(g)^2*(a + p*cot(m) - 1.0*u*cos(g)*cos(v)) + cos(g)*(p*v + u*sin(g))*(p*sin(v) - 1.0*u*cos(v)*sin(g)) - 1.0*a*cos(g)*cot(m)*(p*cos(v) + u*sin(g)*sin(v)))*cos(g);
y=u*sin(u*cos(g)^2*(a + p*cot(m) - 1.0*u*cos(g)*cos(v)) + cos(g)*(p*v + u*sin(g))*(p*sin(v) - 1.0*u*cos(v)*sin(g)) - 1.0*a*cos(g)*cot(m)*(p*cos(v) + u*sin(g)*sin(v)))*cos(g);
z=u*sin(g) + p*(u*cos(g)^2*(a + p*cot(m) - 1.0*u*cos(g)*cos(v)) + cos(g)*(p*v + u*sin(g))*(p*sin(v) - 1.0*u*cos(v)*sin(g)) - 1.0*a*cos(g)*cot(m)*(p*cos(v) + u*sin(g)*sin(v)));

X=a-x;
Y=-y.*cos(m)-z.*sin(m); %坐标变换*
Z=-y.*sin(m)-z.*cos(m);

R=sqrt(X^2+Y^2) %截型
Z1=Z
O=[R,Z1]
展开
 我来答
lhmhz
高粉答主

2018-10-26 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16989

向TA提问 私信TA
展开全部

你可以这样改一下,主要的问题是要正确使用数值运算和点运算符。可以不用循环语句来处理。

u=100*rand(1,10);   %这里为了说明问题,随意取的向量组

v=rand(1,10);  %这里为了说明问题,随意取的向量组

g=pi/9;m=pi/9;a=100;p=2.125;

x=u.*cos(u*cos(g).^2.*(a + p*cot(m) - 1.0*u*cos(g).*cos(v)) + cos(g).*(p*v + u*sin(g)).*(p*sin(v) - 1.0*u.*cos(v)*sin(g)) - 1.0*a*cos(g)*cot(m).*(p*cos(v) + u*sin(g).*sin(v)))*cos(g);

y=u.*sin(u*cos(g).^2.*(a + p*cot(m) - 1.0*u*cos(g).*cos(v)) + cos(g).*(p*v + u*sin(g)).*(p*sin(v) - 1.0*u.*cos(v)*sin(g)) - 1.0*a*cos(g)*cot(m).*(p*cos(v) + u*sin(g).*sin(v)))*cos(g);

z=u*sin(g) + p*(u*cos(g).^2.*(a + p*cot(m) - 1.0*u.*cos(g).*cos(v)) + cos(g).*(p*v + u*sin(g)).*(p*sin(v) - 1.0*u.*cos(v)*sin(g)) - 1.0*a*cos(g)*cot(m).*(p*cos(v) + u*sin(g).*sin(v)));

X=a-x;

Y=-y.*cos(m)-z.*sin(m); %坐标变换*

Z=-y.*sin(m)-z.*cos(m);

R=sqrt(X.^2+Y.^2); %截型

Z1=Z;

O=[R',Z1']

运行效果



追问

 如果是我这样数据怎么改程序啊 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式