matlab离散点网格图绘制

来源:百度知道 编辑:UC知道 时间:2024/05/14 10:15:38
有限元方法里得到n个离散点 每个坐标对应不同的数值解 现在想把这些个数据绘制成三维网格图 请各位高手给出代码 谢谢
各个点坐标(2,0,12.00000), (3,0,20.219911), (4,0,28.000000),
(1,1.732051,4.000000),(1.5,2.598076,3.719906), (2,3.464102,0.000001),
(-1,1.732051,0.000000 ),(-1.5,2.598076,-2.280095), (-2,3.464102,-8.000001 ),
(-2,0,-8.000001,4.000000), (-3,0, 0.000000 ,8.219906), (-4,0,12.000000),
( -1,-1.732051,0.000000) , (-1.5,-2.598076,-2.280094), (-2,-3.464101, -7.999999),
(1,-1.732051,3.999999), (1.5,-2.598076,3.719909) , (2,-3.464102,-0.000003)

meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的。它也可以是更高维的。
[A,B]=Meshgrid(a,b)
生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列。因此命令等效于:
A=ones(size(b))*a;
B=b'*ones(size(a))

  例1:
  >> a=[1:2]
a =
1 2
>> b=[3:5]
b =
3 4 5
>> [A,B]=meshgrid(a,b)
A =
1 2
1 2
1 2
B =
3 3
4 4
5 5
>> [B,A]=meshgrid(b,a)
B =
3 4 5
3 4 5
A =
1 1 1
2 2 2
  例2:
  [X,Y] = meshgrid(-2:.2:2, -2:.2:2);%-2到2之间有4/0.2+1=21个值,所以X、Y都是21*21大小的矩阵
  Z = X .* exp(-X.^2 - Y.^2);
  surf(X,Y,Z)%见图1
  mesh(X,Y,Z)%见图2
  mesh(Z)%见图3
  %mesh命令用来生成由X,Y,Z定义的网线图,生成规则如下:

  (1)X,Y分别为维数是m,n的向量,且(n,m)= size(Z),则生成网线的交叉点为(X(j),Y(i),Z(i,j));
  (2)X,Y分别为矩阵,则生成网线的交叉点为(X(i,j),Y(i,j),Z(i