大家好,欢迎来到IT知识分享网。
假设我们现在有三维数据如下:
x = [-14.97 -9.33 -6.58 -5.19 -4.55 -4.32 -4.31 -4.38 -4.47 -4.52 -4.47 -4.38 -4.31 -4.32 -4.55 -5.19 -6.58 -9.33 -14.97];
有以下两种方法得到三维拟合曲面:
%法一 [xq,yq] = meshgrid(-16:0.1:-2, -25:50/140:25); [X,Y,Z]=griddata(x,y,z,xq,yq,'V4'); xticks(0:1000:5400) figure(2) surf(X,Y,Z); xlabel('x') ylabel('y') zlabel('z') title('曲面拟合') %法二 [X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4'); surf(X,Y,Z); xlabel('x'); ylabel('y'); zlabel('z'); title('曲面拟合')
法一的meshgrid函数是MATLAB中用于生成网格采样点数的函数,其参数设定较主观,例如本题知道了x和y的范围之后,就可以按之设置范围。注意两参数的维度规定是一样的。
法二使用了linspace函数返回包含 min(x) 和 max(x) 之间的 100 个等间距点的行向量。就可以不用主观的判断范围。
两种方法各有好处,大家可以根据实际情况进行选择。
法一效果图:
法二效果图:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133218.html