上课睡觉 发表于 2015-10-15 05:36

matlab云图绘制问题

现在通过计算已经得到了一系列节点的参数,我如何采用用matlab绘制云图呢

happy 发表于 2015-10-16 09:43

一个简单的例子:

首先 有离散点的数据如下
x=[376.82 377.56 379.74 421.20 419.41 417.82 418.80 458.86 457.72 ...
459.55 461.64 500.27 501.51 499.48 498.02 499.19 539.31 538.37 ...
539.96 542.43 540.81 580.87 580.89 582.67 579.80 578.48 579.50 ];
y=[311.42 344.05 381.52 422.46 383.35 345.66 313.22 314.89 347.19 ...
385.15 423.93 462.25 425.33 386.88 348.68 316.53 318.11 350.12 ...
388.58 426.71 463.96 486.67 465.60 428.02 390.20 351.48 319.65 ];
z=[365.45 354.19 430.11 432.51 356.90 340.96 379.24 272.01 279.68 ...
264.96 374.48 360.38 305.39 195.33 259.36 158.41 111.65 205.40 ...
192.63 242.56 351.51 309.88 318.34 209.11 231.77 152.79 101.59 ];
共27个点 其中x和y表示点的坐标 z表示这个点的参数值
为了生成云图 首先要对这些连续的点进行插值处理
=griddata(x,y,z,linspace(376,583,100)',linspace(311,487,100),'v4');
注 linspace(x1,x2,N)函数中x1、x2、N分别为起始值、终止值和元素个数 若N省去 则表示默认值100
= griddata(x,y,z,X,Y,'v4')中 'v4'代表插值方法为matlab4格点样条函数内插
也可换用其它的值如'linear','cubic','nearest'等
分别为以三角形为基础的线性内插,以三角形为基础的三次方程内插,最邻近的点内插
contourf(X,Y,Z,20) %等值线图
其中20表示云图中数值分成的份数
pcolor(X,Y,Z);shading interp%伪彩色图
除此之外 还可以画出三维曲面
surf(X,Y,Z)%三维曲面

上课睡觉 发表于 2015-10-18 16:59

happy 发表于 2015-10-16 09:43
一个简单的例子:

首先 有离散点的数据如下


有三维云图绘制方法吗?

happy 发表于 2015-10-19 08:44

上课睡觉 发表于 2015-10-18 16:59
有三维云图绘制方法吗?

这个可以用slice来做,参考相关帮助,下面是一个例子

= meshgrid(0:.5:10,0:.5:10,0:.5:10);
c = x.^2+y.^2+z.^2;
xs = 0:0.5:10;
ys = xs;
zs = xs;
c(7:15,7:15,13:21)=NaN;
h = slice(x,y,z,c,xs,ys,zs);
set(h,'FaceColor','interp',...
    'EdgeColor','none')
camproj perspective
box on
view(-70,70)
colormap hsv
colorbar

上课睡觉 发表于 2015-10-28 22:37

happy 发表于 2015-10-19 08:44
这个可以用slice来做,参考相关帮助,下面是一个例子

谢谢,先参考一下
页: [1]
查看完整版本: matlab云图绘制问题