在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

数组才能画图。
学丰芒秀
2019-06-27 · TA获得超过3706个赞
知道大有可为答主
回答量:3134
采纳率:30%
帮助的人:225万
展开全部
>>
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
数组才能画图。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式