程序生成一个二维高斯函数。然后,程序尝试使用MatLab函数“lsqcurvefit”拟合数据,以找到二维高斯函数的位置、方向和宽度。
使用非输入参数执行“mainD2GaussFitRot.m”。
二维高斯函数由函数“D2GaussFunctionRot.m”和“D2GaussFunction.m”定义
Gero Nootz(2020年)。配合2D高斯函数将数据(//www.tatmou.com/matlabcentral/fileexchange/37087-fit-2d-gaussian-function-to-data),MATLAB中心文件交换。恢复.
1.5.0.0条 | 文件改名和高斯宽度的定义发生了变化。 |
Oila [R(查看资料)
一旦你把它转换成一个函数,这样你就可以把它应用到数据中去,但是这样做需要一段时间。下面描述的步骤并不能完成全部任务。。。我会告诉你我做了什么,但我不记得了,因为我花了那么多时间玩它。
杨海宁(查看资料)
艾米丽彭德尔顿(查看资料)
你好!我对使用这段代码很感兴趣,但使用它有困难。如果有人愿意帮忙的话,我已经在MATLAB上发布了一个问题解答。谢谢!//www.tatmou.com/matlabcentral/answers/386720-fit-2d-gaussian-function
华伦红(查看资料)
丽华6644(查看资料)
格吕尼·索恩(查看资料)
马丁·阿伦斯(查看资料)
尼玛·普拉卡什(查看资料)
感谢您的代码。
ZY公司(查看资料)
谢谢你的密码。和拟合参数相关的误差是什么?
徐斌(查看资料)
良好的工作。我会很高兴知道如何代码工作
Brian.L(查看资料)
干得好,杰罗!我还想知道该代码如何适用于三维系统。。。
约泽夫奥班(查看资料)
请您提供具有依赖项的代码(如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的矩阵,使他们所有的X,Y和Z都对应点(X(I),Y(同样大小和元素ii)中,Z(i))的。有可能是在大小和形状(我认为它必须是一个矩阵,而不是一个数组)附加限制,但我不能肯定。
无论如何,非常感谢你。这很有帮助。:)
狮子座(查看资料)
泽维尔(查看资料)
高斯顿(查看资料)
一月(查看资料)
可惜这是一个脚本,它通过一个随机函数生成数据。在它能用于解决实际问题之前,需要进行实质性的更改。
如果计算转移到一个函数并与测试数据的生成分离,那么它将增加可用性。
禄东赞船夫(查看资料)
很适合二维系统…有没有机会把它扩展到三维?