matlab 用三矩阵画三维图形,求救
2个回答
展开全部
你这个问题我感觉还是没说清楚啊!如果x,y,z都是40x1的矩阵,那应该只能画曲线而不是曲面吧!!
meshgrid是生成栅格点数据,mesh是画网格面,surf是画表面图。
画三维曲线应该是plot3(x,y,z)
_____________________________________
看了下楼下说的,我发现我误解了。
mesh,surf都是在规则网格数据下作图,而混乱的散点网格作图,可以用trimesh,trisurf.
例子如下:
x=10*rand(1000,1)-5;
y=10*rand(1000,1)-5;
%x、y是随机的,所以不等距。
z=x.^2-y.^2;
%这里我用的是马鞍面的函数式,
tri
=
delaunay(x,y);
%这一句相当于以前的meshgrid造网格,不过是不规则网格
trimesh(tri,x,y,z)
%这里trimesh也可以改为trisurf
这个是三角插值作图。
meshgrid是生成栅格点数据,mesh是画网格面,surf是画表面图。
画三维曲线应该是plot3(x,y,z)
_____________________________________
看了下楼下说的,我发现我误解了。
mesh,surf都是在规则网格数据下作图,而混乱的散点网格作图,可以用trimesh,trisurf.
例子如下:
x=10*rand(1000,1)-5;
y=10*rand(1000,1)-5;
%x、y是随机的,所以不等距。
z=x.^2-y.^2;
%这里我用的是马鞍面的函数式,
tri
=
delaunay(x,y);
%这一句相当于以前的meshgrid造网格,不过是不规则网格
trimesh(tri,x,y,z)
%这里trimesh也可以改为trisurf
这个是三角插值作图。
东莞大凡
2024-08-07 广告
2024-08-07 广告
作为东莞市大凡光学科技有限公司的一员,Halcon生成标定板的方法非常直接。通过Halcon软件,我们可以使用`gen_caltab`或`create_caltab`等算子,根据需求设定圆点数量、间距、直径等参数,生成标定板描述文件(.de...
点击进入详情页
本回答由东莞大凡提供
展开全部
把程序弄通了
clear;clc;
theta=0:0.1:2*pi;
alpha=0:0.05:pi;
x=cos(theta);
y=cos(alpha);
e=-exp(i*theta);
for
k=1:length(x)
A=[3*x(k)
-2*y(k)
0
0
0
0
0
0
0
0
-1
0;
-2*y(k)
3*x(k)
-1
0
0
0
0
0
0
0
0
0;
0
-1
2*x(k)
-1
0
0
0
0
0
0
0
0;
0
0
-1
3*x(k)
-1
-1
0
0
0
0
0
0;
0
0
0
-1
3*x(k)
0
-1
-1
0
0
0
0
;
0
0
0
-1
0
3*x(k)
0
0
-1
-1
0
0
;
0
0
0
0
-1
0
2*x(k)
0
0
0
0
e(k)
;
0
0
0
0
-1
0
0
x(k)
0
0
0
0
;
0
0
0
0
0
-1
0
0
x(k)
0
0
0
;
0
0
0
0
0
-1
0
0
0
x(k)
0
0
;
-1
0
0
0
0
0
0
0
0
0
e(k)
0
;
0
0
0
0
0
0
-1
0
0
0
0
1];
C=[1
0
0
0
0
0
0
0
0
0
e(k)
0]';
B=inv(A)*C;
tao=abs(B(12,1));
T(k)=tao^2;
end
plot3(theta,alpha,T)
xlabel('theta'),ylabel('alpha'),zlabel('T')
grid
view(-10,30)
或者3D的
clear;clc;
theta=meshgrid(0:0.1:2*pi);
alpha=meshgrid(0:0.05:pi);
x=cos(theta);
y=cos(alpha);
e=-exp(i*theta);
for
i=1:length(x)
for
k=1:length(x)
A=[3*x(i,k)
-2*y(i,k)
0
0
0
0
0
0
0
0
-1
0;
-2*y(i,k)
3*x(i,k)
-1
0
0
0
0
0
0
0
0
0;
0
-1
2*x(i,k)
-1
0
0
0
0
0
0
0
0;
0
0
-1
3*x(i,k)
-1
-1
0
0
0
0
0
0;
0
0
0
-1
3*x(i,k)
0
-1
-1
0
0
0
0
;
0
0
0
-1
0
3*x(i,k)
0
0
-1
-1
0
0
;
0
0
0
0
-1
0
2*x(i,k)
0
0
0
0
e(i,k)
;
0
0
0
0
-1
0
0
x(i,k)
0
0
0
0
;
0
0
0
0
0
-1
0
0
x(i,k)
0
0
0
;
0
0
0
0
0
-1
0
0
0
x(i,k)
0
0
;
-1
0
0
0
0
0
0
0
0
0
e(i,k)
0
;
0
0
0
0
0
0
-1
0
0
0
0
1];
C=[1
0
0
0
0
0
0
0
0
0
e(i,k)
0]';
B=inv(A)*C;
tao(i,k)=abs(B(12,1));
T(i,k)=tao(i,k).^2;
end
end
surf(T)
xlabel('theta'),ylabel('alpha'),zlabel('T')
grid
on
view(-20,30)
clear;clc;
theta=0:0.1:2*pi;
alpha=0:0.05:pi;
x=cos(theta);
y=cos(alpha);
e=-exp(i*theta);
for
k=1:length(x)
A=[3*x(k)
-2*y(k)
0
0
0
0
0
0
0
0
-1
0;
-2*y(k)
3*x(k)
-1
0
0
0
0
0
0
0
0
0;
0
-1
2*x(k)
-1
0
0
0
0
0
0
0
0;
0
0
-1
3*x(k)
-1
-1
0
0
0
0
0
0;
0
0
0
-1
3*x(k)
0
-1
-1
0
0
0
0
;
0
0
0
-1
0
3*x(k)
0
0
-1
-1
0
0
;
0
0
0
0
-1
0
2*x(k)
0
0
0
0
e(k)
;
0
0
0
0
-1
0
0
x(k)
0
0
0
0
;
0
0
0
0
0
-1
0
0
x(k)
0
0
0
;
0
0
0
0
0
-1
0
0
0
x(k)
0
0
;
-1
0
0
0
0
0
0
0
0
0
e(k)
0
;
0
0
0
0
0
0
-1
0
0
0
0
1];
C=[1
0
0
0
0
0
0
0
0
0
e(k)
0]';
B=inv(A)*C;
tao=abs(B(12,1));
T(k)=tao^2;
end
plot3(theta,alpha,T)
xlabel('theta'),ylabel('alpha'),zlabel('T')
grid
view(-10,30)
或者3D的
clear;clc;
theta=meshgrid(0:0.1:2*pi);
alpha=meshgrid(0:0.05:pi);
x=cos(theta);
y=cos(alpha);
e=-exp(i*theta);
for
i=1:length(x)
for
k=1:length(x)
A=[3*x(i,k)
-2*y(i,k)
0
0
0
0
0
0
0
0
-1
0;
-2*y(i,k)
3*x(i,k)
-1
0
0
0
0
0
0
0
0
0;
0
-1
2*x(i,k)
-1
0
0
0
0
0
0
0
0;
0
0
-1
3*x(i,k)
-1
-1
0
0
0
0
0
0;
0
0
0
-1
3*x(i,k)
0
-1
-1
0
0
0
0
;
0
0
0
-1
0
3*x(i,k)
0
0
-1
-1
0
0
;
0
0
0
0
-1
0
2*x(i,k)
0
0
0
0
e(i,k)
;
0
0
0
0
-1
0
0
x(i,k)
0
0
0
0
;
0
0
0
0
0
-1
0
0
x(i,k)
0
0
0
;
0
0
0
0
0
-1
0
0
0
x(i,k)
0
0
;
-1
0
0
0
0
0
0
0
0
0
e(i,k)
0
;
0
0
0
0
0
0
-1
0
0
0
0
1];
C=[1
0
0
0
0
0
0
0
0
0
e(i,k)
0]';
B=inv(A)*C;
tao(i,k)=abs(B(12,1));
T(i,k)=tao(i,k).^2;
end
end
surf(T)
xlabel('theta'),ylabel('alpha'),zlabel('T')
grid
on
view(-20,30)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询