现在的位置: 首页 > 综合 > 正文

matlab 三维绘图汇总

2019年05月01日 ⁄ 综合 ⁄ 共 3618字 ⁄ 字号 评论关闭

matlab 三维绘图汇总

A=[1.486,3.059,0.1;2.121,4.041,0.1;2.570,3.959,0.1;3.439,4.396,0.1;
4.505,3.012,0.1;3.402,1.604,0.1;2.570,2.065,0.1;2.150,1.970,0.1;
1.794,3.059,0.2;2.121,3.615,0.2;2.570,3.473,0.2;3.421,4.160,0.2;
4.271,3.036,0.2;3.411,1.876,0.2;2.561,2.562,0.2;2.179,2.420,0.2;
2.757,3.024,0.3;3.439,3.970,0.3;4.084,3.036,0.3;3.402,2.077,0.3;
2.879,3.036,0.4;3.421,3.793,0.4;3.953,3.036,0.4;3.402,2.219,0.4;
3.000,3.047,0.5;3.430,3.639,0.5;3.822,3.012,0.5;3.411,2.385,0.5;
3.103,3.012,0.6;3.430,3.462,0.6;3.710,3.036,0.6;3.402,2.562,0.6;
3.224,3.047,0.7;3.411,3.260,0.7;3.542,3.024,0.7;3.393,2.763,0.7];
x=A(:,1);y=A(:,2);z=A(:,3);
scatter(x,y,5,z)%散点图
figure
[X,Y,Z]=griddata(x,y,z,linspace(1.486,4.271)',linspace(1.604,4.276),'v4');%插值
pcolor(X,Y,Z);shading interp%伪彩色图
figure,contourf(X,Y,Z) %等高线图
figure,surf(X,Y,Z)%三维曲面

我最近也在学习这方面的内容,不过我的数据点是离散的,因此做了一个插值。不知道这个结果对你有没有用,就做个参考吧,我也是新手,这个结果也是弄了好久才弄出来的.

x=[140.0 88.0 195.0 105.5 157.5 107.5 81.0 162.0 162.0];
y=[141.5 147.0 137.5 85.5 60.5 121.0 56.5 116.5 84.0 ];
plot(x,y,'o')
Z=[14 16 14 14 15 15 16 15 13 ];
h=-Z;
xi=70:3:200;yi=0:3:150;
[X,Y]=meshgrid(xi,yi);
H=griddata(x,y,h,X,Y,'v4');
mesh(X,Y,H);
view(-60,30);




数据是n*3的坐标(如附件data.txt),分别是x y z的坐标,这些坐标并没有按照大小排序,z值也与x
y没有固定关系

要做出类似下图的光滑曲面图 并剖面   先谢过了


利用你现有的数据可以用interp2差值计算其他区域,或者用神经网络逼近其他区域值,画出曲面...





通过实验,获得了很多诸如(1 2 3)(4 5 6 )(7 8 9)(10 11 12)(13 14 15)(16 17 18)(19 20 21)这样的数据,总共有近一千多个,在MATLAB中怎么画三维曲面图,以便于对数据的分析,希望详细点,谢谢!



通过实验,获得了很多诸如(1 2 3)(4 5 6 )(7 8 9)(10 11 12)(13 14 15)(16 17 18)(19 20 21)这样的数据,总共有近一千多个,在MATLAB中怎么画三维曲面图,以便于对数据的分析,希望详细点,谢谢!



首先将数据以txt的形式放入Matlab下的work工作文件夹下(如名字为 shuju.txt)
新建M文件
输入
a=importdata('shuju.txt');
x=a(:,1);
y=a(:,2);
z=a(:,3);

xx=meshgrid(x1);
yy=meshgrid(y1);
zz=meshgrid(z1);

mesh(xx,yy,zz)


三维图通常包含两种类别:三维曲线图、三维曲面图
一、三维曲线图plot3
    由若干个点连接起来的空间曲线。给plot3提供三个基本向量分别对应一系列顺序的点,这些点的连接就构成了一个曲线图形了。 三个向量分别对应X轴,Y轴和Z轴。
     t=0:pi/50:10*pi;
     plot3(sin(t), cos(t), t);
     打开网格线grid on
     是的三个坐标轴刻度相等: axis square
 
二、三维网线图 mesh
    mesh需要三个基本参数,两个向量和一个矩阵。 两个向量的大小为m和n,那么第三个矩阵的大小mn。
    提供了这三个参数之后,才能绘制出三维网线图。
    x=-5:0.1:5;    y=-5:0.1:5;   z=zeros(101, 101);

    m=[0,0]';    s=[1,0;0,1];
    for i=1:101

       for j=1:101

          z(i,j)=cgdv(m,s,[x(i) y(j)]');

       end

    end

    1, mesh(z)不提供两个向量时,会用z的横纵坐标作为代替
 
三、surf三维曲面图
    同样需要提供三个参数,和mesh相同,区别是展示的图形。
 
 
四、关于meshgrid的使用
    meshgrid和点号矩阵运算相结合。
   [X, Y]=meshgrid(x, y);
    其中x为n个元素的向量,y为m个元素的向量。 结果X成为m行重复的x, 而Y成为n列重复的y'。
   这样做的目的是列举X和Y上所有的(i,j)组合可以得到原始数据的所有组合。
   配合点号运算后可以把两个相同形状的矩阵进行元素对元素的运算。
   Z=X.*Y. 则把相同位置所有的元素进行对应计算。
a=importdata('cost.txt');
x=a(:,1);
y=a(:,2);
plot(x,y,'o')

z=a(:,3);
h=-Z;
xi=1:1:4;yi=0:1:3;
[X,Y]=meshgrid(xi,yi);
H=griddata(x,y,h,X,Y,'v4');
mesh(X,Y,H);
view(-60,30);

a=importdata('shuju.txt');
x=a(:,1);
y=a(:,2);
z=a(:,3);

xx=meshgrid(x1);
yy=meshgrid(y1);
zz=meshgrid(z1);

mesh(xx,yy,zz)

x=cost(:,1);
y=cost(:,2);
plot(x,y,'o')
z=cost(:,3);
xi=0:5:100;yi=0:0.5:5;
[X,Y]=meshgrid(xi,yi);
Z=griddata(x,y,z,X,Y,'v4');
mesh(X,Y,Z);
view(-60,30);

x=[140.0 88.0 195.0 105.5 157.5 107.5 81.0 162.0 162.0];
y=[141.5 147.0 137.5 85.5 60.5 121.0 56.5 116.5 84.0 ];
plot(x,y,'o')
Z=[14 16 14 14 15 15 16 15 13 ];
h=-Z;
xi=70:3:200;yi=0:3:150;
[X,Y]=meshgrid(xi,yi);
H=griddata(x,y,h,X,Y,'v4');
mesh(X,Y,H);
view(-60,30);

x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];
y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];
z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9];
cx=75:0.5:200;
cy=-70:0.5:150;
cz=griddata(x,y,z,cx,cy','cubic');
meshz(cx,cy,cz)

x=[1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4];
y=[0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3];
z=[70 60 30 0 80 75 60 30 85 80 75 70 90 85 80 75];
cx=1:1:4;
cy=0:1:4;
cz=griddata(x,y,z,cx,cy','cubic');
meshz(cx,cy,cz)

xyz=[40 2 1.4 
40 5 2.5 
40 7 1.4 
40 9 0.9 
50 2 1 
50 5 3.5 
50 7 0.7 
50 9 1.8 
60 2 0.4 
60 5 0.5 
60 7 4.9 
60 9 4.5 
70 2 0.2 
70 5 1 
70 7 3.5 
70 8 5.6 ];
tri = delaunay(xyz(:,1), xyz(:,2));
trimesh(tri, xyz(:,1), xyz(:,2),xyz(:,3));
shading interp

抱歉!评论已关闭.