如何获得双调和的值插值- 3 d曲面拟合

30视图(30天)
你好,
我使用了“biharmonicinterp”3 d曲面拟合方法并得到以下表面基于4给定数据点(蓝点),这是比其他合适的方法更合理。
然而,很难得到这些点之间的插补值。例如,我想片表面和图把z值改变沿着某一个轴,但不能得到前面的插值。我尝试使用其他cfit方法,但截面不符合三维表面。
你能帮我得到插值数据通过使用“biharmonicinterp”方法?或者直接把安装3 d表面得到z值改变?非常感谢。
下面的代码连接:
%的数据
xData = [0, 85, 0, -85);
yData = [85; 0; -85; 0];
zData = (0.5695; 0.1766; -0.2984; -0.0129);
%建立fittype和选项。
英国《金融时报》=“biharmonicinterp”;
%配合模型数据。
[gof fitresult,输出]= fit ([xData yData], zData,英国《金融时报》,“正常化”,“上”);
%绘制符合数据。
图(1)
h =情节(fitresult [xData yData], zData);
传奇(“关闭”)
网格
colormap(飞机)
阴影插值函数
colorbar
%标签轴
包含(“X”,“翻译”,“没有”);
ylabel (“Y”,“翻译”,“没有”);
zlabel (“Z”,“翻译”,“没有”);
%蜱虫标签
xticks (80:20:80)
yticks (80:20:80)
%纸的位置
集(gcf,“PaperPositionMode”,“汽车”);
7评论
浩史
浩史 2020年6月20日
我明白了,我将试着获得更多数据从其他位置,非常感谢你约翰!

登录置评。

接受的答案

约翰D 'Errico
约翰D 'Errico 2020年6月13日
编辑:约翰D 'Errico 2020年6月13日
我不明白这个问题。然而,我会注意你只有4分,所以表面创建以智能的方式非常困难。和使用任何这样的插值跨域的中心可以产生一些有趣的插值工件,如果你知道去哪里看。(在多个维度与插值工作多年来,我可以证明这是事实。)不管怎样,你似乎产生我完全相信的东西。
例如,如何通过该地区得到一片吗?比如,修复x为零,那么y变化?
[xData, yData zData]
ans =
0 85 0.5695
85 0 0.1766
0 -85 -0.2984
-85 0 -0.0129
所以我期望z从-0.2984到0.5695不等。曲线的形状沿着这条道路可能会光滑的东西,但它会有一些形状。没有必要的一条直线。
xint = 0 (1、50);
yint = linspace (-85、85、50);
zint = fitresult (xint yint);
情节(yint zint,“b”)
所以一点都不合理。与端点的有限的数据一致。现在,没有复制你写的所有代码,我将把这最后的两行代码。
持有
H = plot3 (xint yint zint,“柯”);
我不明白这个问题。我看到一个与很多黑人o创建表面的形状,从角落的角落。现在,你在哪里看到的问题我做了什么?我不喜欢。曲线是非常合理的,是符合绘制表面。你期待一条直线连接这两个端点?

答案(1)

darova
darova 2020年6月13日
  • 手动重建表面
  • 使用interp2
(x1, y1) = meshgrid (50:5:50);
z1 = fitresult (x1, y1);
xx = linspace(-50年,50);
yy = 2 * xx;
zz = interp2 (x1, y1, z1, xx, yy);
冲浪(x1, y1, z1)
线(yy, xx zz,“linew”3)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!