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;
问题在哪呢?非常渴望您的指教,谢谢啦!!谢谢啦!! 展开
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;
问题在哪呢?非常渴望您的指教,谢谢啦!!谢谢啦!! 展开
2个回答
展开全部
>> 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
数组才能画图。
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
数组才能画图。
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
展开全部
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;
画图相当慢,因为点太多,你可以试一下将各个步长变大一些,就可以做出图来/
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;
画图相当慢,因为点太多,你可以试一下将各个步长变大一些,就可以做出图来/
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询