如何使用Matlab拟合曲面((x,y,z)矩阵?

时间:2017-07-05 18:35:53

标签: matlab matlab-figure curve-fitting surface data-fitting

我进行了AFM(原子力显微镜)测量。我将我的数据从Gwyddion导出到一个文本文件(可以下载here),例如我在Matlab中加载它,如:

data = importdata('001_Zsensor.xyz');
x=data(:,1);y=data(:,2);z=data(:,3);
shading('interp');
tri = delaunay(x,y);
figure(1)
tsurf=trisurf(tri,x,y,z,'EdgeColor','none','Facecolor','interp');

所以现在我有了自己的表面。它对应于珠子的粗糙度,所以我需要提取这个表面的球形特征,以恢复平面上的粗糙度景观(然后我可以从中计算我的物理参数)。

基本上,我想在我之前定义的表面(tsurf)上插入一个椭圆体。我尝试使用cftool(即使我更喜欢使用命令,所以我可以将它放在Matlab脚本中)但是因为方程应该是形式的

z=f(x,y)

并且椭圆体的等式是

((x-x0)/a)^2 + ((y-y0)/b)^2 + ((z-z0)/c)^2 = 1

我无法适应工作。 我怎么能这样做?

非常感谢。

1 个答案:

答案 0 :(得分:0)

好的,找到了!这是:

按照我之前编写的代码行(参见本文的问题):

=cut

当然,如果需要,可以更加约束。