matlab 画云图
时间: 2023-11-17 17:07:57 浏览: 152
Matlab可以通过不同的方法来画云图,包括均匀网格云图、不均匀三角形网格云图、不均匀散点云图和不规则区域云图等。其中,均匀网格云图可以使用scatteredInterpolant函数和contourf函数实现;不均匀三角形网格云图可以使用griddata函数和contourf函数实现,也可以使用trisurf函数实现;不均匀散点云图可以使用delaunay函数和triplot函数实现,也可以使用trisurf函数实现;不规则区域云图可以使用polyshape函数和fill函数实现。具体实现方法可以参考以下代码:
1. 均匀网格云图
```
FT = scatteredInterpolant(x,y,f);
vq = FT(x_b,y_b);
figure, contourf(x_b,y_b,vq), colorbar
```
2. 不均匀三角形网格云图
```
[X,Y,Z]=griddata(x,y,f,linspace(0,2,1000),linspace(0,5,1000)','cubic');%插值 % method:'nearest','natural','cubic','linear','v4'
figure, contourf(X,Y,Z), colorbar
% 或者使用trisurf函数
tri = delaunay(x,y);
trisurf(tri,x,y,f)
view(0,90);colorbar; axis equal;grid on;
```
3. 不均匀散点云图
```
tri = delaunay(x,y);
triplot(tri,x,y)
hold on
trisurf(tri,x,y,f)
view(0,90);colorbar; axis equal;grid on;
```
4. 不规则区域云图
```
p = polyshape([0 1 1 0],[0 0 1 1]);
fill(p.Vertices(:,1),p.Vertices(:,2),'r')
hold on
p = polyshape([1 2 2 1],[0 0 1 1]);
fill(p.Vertices(:,1),p.Vertices(:,2),'g')
hold on
p = polyshape([2 3 3 2],[0 0 1 1]);
fill(p.Vertices(:,1),p.Vertices(:,2),'b')
```
阅读全文