在matlab中用for循环画曲面图(plot3命令)---一个具体问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 20:34:10
我想用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;
问题在哪呢?非常渴望您的指教,谢谢啦!!谢谢啦!!

>> 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;

运行完之后:
>>