参考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')
如使用三维曲面图:
>> [xq, yq] = meshgrid(0:8,0:7);
>> zq = griddata(x, y, z, xq, yq);
>> mesh(xq, yq, zq)
meshgrid 括号里跟两个列表,表明将要取的矩阵点的范围
griddata 为拟合,拟合后的矩阵为xq yq zq
mesh() 为生成网格
当然,也可以生成别的图像,如(以下为了美观,采用另一套坐标点)
surf(xq, yq, vq)
surf(xq, yq, vq)
axis square
shading interp
surfl(xq, yq, vq)
shading interp;
colormap(gray);