matlab中用for循环画曲面图(plot3命令)

我想用plot3命令画一个机器人足端空间三维曲面图,这里有三个角度变量a1、a2、a3,l1、l2、l3为杆长度,是常量,足端坐标x、y、z都是关于这三个角度变量的函数,... 我想用plot3命令画一个机器人足端空间三维曲面图,这里有三个角度变量a1、a2、a3,l1、l2、l3为杆长度,是常量,足端坐标x、y、z都是关于这三个角度变量的函数,我编的程序如下,运行后能出来“Figure”框,但是是空的没有图形,很郁闷!!不知是什么原因,请matlab高手指教一下,如果我用的命令不对,那是否能用别的命令来实现?具体的指教一下!!
for a1=(-0.5:0.02:0.5)*pi;
for a2=(-0.6:0.006:-0.3)*pi;
for a3=(-0.23:0.007:0.12)*pi;
l1=250;l2=760;l3=420;
x=cos(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1);
y=sin(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1);
z=l3.*sin(a2+a3)+l2.*sin(a2);
end
end
end
plot3(x,y,z);grid on;
问题在哪呢?非常渴望您的指教,谢谢啦!!谢谢啦!!
展开
 我来答
化学工程
2009-06-02 · TA获得超过8897个赞
知道大有可为答主
回答量:2212
采纳率:80%
帮助的人:3288万
展开全部
>> whos
Name Size Bytes Class Attributes

a1 1x1 8 double
a2 1x1 8 double
a3 1x1 8 double
l1 1x1 8 double
l2 1x1 8 double
l3 1x1 8 double
x 1x1 8 double
y 1x1 8 double
z 1x1 8 double

看到没有?x、y、z都是一个单数,只能画一个点。这样就可以了:

clc;clear
a1=(-0.5:0.02:0.5)*pi;
a2=(-0.6:0.006:-0.3)*pi;
a3=(-0.23:0.007:0.12)*pi;
l1=250;l2=760;l3=420;
x=cos(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1);
y=sin(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1);
z=l3.*sin(a2+a3)+l2.*sin(a2);
plot3(x,y,z);grid on;

运行完之后:
>> whos
Name Size Bytes Class Attributes

a1 1x51 408 double
a2 1x51 408 double
a3 1x51 408 double
l1 1x1 8 double
l2 1x1 8 double
l3 1x1 8 double
x 1x51 408 double
y 1x51 408 double
z 1x51 408 double

数组才能画图。
wacs5
推荐于2017-09-23 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2735万
展开全部
xx=[];
yy=[];
zz=[];
for a1=(-0.5:0.02:0.5)*pi;
for a2=(-0.6:0.006:-0.3)*pi;
for a3=(-0.23:0.007:0.12)*pi;
l1=250;l2=760;l3=420;
x=cos(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1);
y=sin(a1).*(l3.*cos(a2+a3)+l2.*cos(a2)+l1);
z=l3.*sin(a2+a3)+l2.*sin(a2);
xx=[xx,x];
yy=[yy,y];
zz=[zz,z];
end
end
end
plot3(xx,yy,zz);grid on;

画图相当慢,因为点太多,你可以试一下将各个步长变大一些,就可以做出图来/
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式