洛伦茨曲线半高全宽_关于MatLab如何取某变函数半高全宽(FWHM)并Plot的问题

本文介绍了如何在MatLab中计算多峰函数的半高全宽(FWHM)。通过示例代码展示了从自定义的多峰函数中确定峰值,并使用插值法找出半高点的过程。然而,当存在相邻峰导致主峰右侧无法达到半高点时,提出了这个问题并说明可能需要特殊处理的情况。
摘要由CSDN通过智能技术生成

使用高斯函数作为测试用例不是很恰当,计算出来的半高宽都一样。

我在peaks函数的基础上改出来一个多峰函数,还存在一些小问题,但基本上可用了,你可以先看看:X = -10 : .5 : 10;

Y = -10 : .5 : 10;

FWHM = X * 0;

for i = 1 : length(X)

x = X(i);

f = 3*(1-x).^2.*exp(-(x.^2) - (Y+1).^2) + 10*(x/5 + x.^2 + Y.^4).*exp(-x.^2-Y.^2);

[max_f, ind] = max(f);

HM = (max_f-min(f)) / 2;

% 通过插值找到左侧的半高坐标

% 如果是多峰,确保只在靠近峰值的附近找

f1 = f(1:ind(1));

Y1 = Y(1:ind(1));

ind1 = [1 find(diff(f1)<=0)];

f1 = f1(ind1(end):end);

Y1 = Y1(ind1(end):end);

y1 = interp1(f1,Y1,HM);

% 通过插值找到右侧的半高坐标

f2 = f(ind(1):end);

Y2 = Y(ind(1):end);

ind1 = [find(diff(f2)>=0) length(f2)];

f2 = f2(1:ind1(1));

Y2 = Y2(1:ind1(1));

y2 =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值