图像缩略图

数据拟合二维高斯函数

版本1.5.0.0(3.56 KB)由 格罗诺茨
将二维高斯函数拟合到模拟数据。
5.0条
13额定值

76次下载

更新2012年6月12日

查看许可证

程序生成一个二维高斯函数。然后,程序尝试使用MatLab函数“lsqcurvefit”拟合数据,以找到二维高斯函数的位置、方向和宽度。
使用非输入参数执行“mainD2GaussFitRot.m”。
二维高斯函数由函数“D2GaussFunctionRot.m”和“D2GaussFunction.m”定义

引用为

Gero Nootz(2020年)。数据拟合二维高斯函数(//www.tatmou.com/matlabcentral/fileexchange/37087-fit-2d-gaussian-function-to-data),MATLAB中心文件交换。恢复.

评论和评级(19个)

加油机

一旦你把它转换成一个函数,这样你就可以把它应用到数据中去,但是这样做需要一段时间。下面描述的步骤并不能完成全部任务。。。我会告诉你我做了什么,但我不记得了,因为我花了那么多时间玩它。

杨海宁

你好!我对使用这段代码很感兴趣,但使用它有困难。如果有人愿意帮忙的话,我已经在MATLAB上发布了一个问题解答。谢谢!//www.tatmou.com/matlabcentral/answers/386720-fit-2d-gaussian-function

华伦红

丽华6644

谢谢你的代码。

ZY公司

谢谢你的密码。和拟合参数相关的误差是什么?

徐斌

干得好。我很高兴知道代码是如何工作的

干得好,杰罗!我还想知道该代码如何适用于三维系统。。。

请您提供具有依赖项的代码(如lsqncomon、lsqcurvefit等)

黄玉婷

我想知道D2GaussFunctionRot函数脚本中的x(6)。我知道这意味着角度(以rad为单位),但是,我不知道这个角度到底是基于什么?

简·西蒙的批评是错误的,只需要稍作改动就可以绘制出真实的数据。如果你有一个规则的点网格,你所要做的就是:
将第29行改为适当的初始猜测
将第30行改为xs=x0;
将第31行改为noise=0;
将第38行更改为[X,Y]=网格(X,Y);
其中x和y a向量与x和y轴指向
将第47行改为Z=zdata;
其中,z data是一个长度(x)乘以长度(y)的矩阵,其中包含您希望拟合的数据,以便zdata(i,j)=z(x_i,y_j)。
第48行应该被注释掉。

如果网格点不规则,则必须设置X、Y和Z矩阵,使它们的大小和元素i(X、Y和Z)都与点(X(i)、Y(i)、Z(i))对应。可能对大小和形状有额外的限制(我认为它必须是一个矩阵,而不是数组),但我不确定。

无论如何,非常感谢你。这很有帮助。:)

狮子座

泽维尔

高斯顿

可惜这是一个脚本,它通过一个随机函数生成数据。在它能用于解决实际问题之前,需要进行实质性的更改。

如果计算转移到一个函数并与测试数据的生成分离,那么它将增加可用性。

加沃特曼

很适合二维系统…有没有机会把它扩展到三维?

更新

1.5.0.0条

文件已重命名,高斯宽度的定义已更改。
还添加了一个屏幕截图。

MATLAB版本兼容性
用R2011a创建
与任何版本兼容
平台兼容性
窗户 马科斯 Linux系统