MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid

参考MATLAB文档 https://ww2.mathworks.cn/help/matlab/ref/griddata.html

在2019数学建模A题时遇到需要根据三维坐标画出三维曲面图,但由于随机不规则,不能形成坐标矩阵,故直接带入只能生成三维散点图,如,有数据:

u=[5 5 5;
7 2 1;
4 7 2;
6 1 6;
2 6 7;
3 3 4;
1 4 3];
x=u(:,1)
y=u(:,2)
z=u(:,3)

可用代码得到:

plot3(x,y,z,'o')

MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid_第1张图片

如使用三维曲面图:

>> [xq, yq] = meshgrid(0:8,0:7);
>> zq = griddata(x, y, z, xq, yq);
>> mesh(xq, yq, zq)

meshgrid 括号里跟两个列表,表明将要取的矩阵点的范围

griddata 为拟合,拟合后的矩阵为xq yq zq

mesh() 为生成网格

MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid_第2张图片

当然,也可以生成别的图像,如(以下为了美观,采用另一套坐标点)

surf(xq, yq, vq)

MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid_第3张图片

surf(xq, yq, vq)
axis square
shading interp

MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid_第4张图片

surfl(xq, yq, vq)
shading interp;
colormap(gray);

MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid_第5张图片

你可能感兴趣的:(工具)