帮助试图手动插入山峰findpeaks后请通过无线电或按钮!

2视图(30天)
你好,所以我有困难创建一个按钮,当按下或自责会让我手动插入山峰findpeaks运行我的程序之后,这是因为我的程序也删除某些山峰基于他们的频率。
之后,我们可以使用这个为例,下图运行这段代码,但是我怎么能插入一个按钮在这个按钮组中,这将允许我手动插入一个峰值在x = 0.8点例如没有峰值或任何其他点没有山峰。我希望我已经提供了足够的信息,我甚至不知道如果这是可行的,但如果是请告诉我正确的方向!非常感谢你的时间!
x = linspace (0, 1, 1000);
基础= 4 * cos(2 *π* x);
Pos = (1 2 3 5 7 8) / 10;
高度= [3 7 5 5 4 5];
Wdt = [1 3 4 2 3] / 100;
n = 1:长度(Pos)
:高斯(n) = Hgt (n) * exp (- ((x - Pos (n)) / Wdt (n)) ^ 2);
结束
PeakSig =总和(高斯)+基地;
情节(x,高斯,“——”PeakSig, x, x,基地)
findpeaks (PeakSig x,“MinPeakProminence”4“注释”,“范围”)
hBtnGrp2 = uibuttongroup (“位置”,(。75 0.109 0.16 0.15),“单位”,“归一化”,“标题”,的按钮组,“ForegroundColor”,‘g’,“字形大小”8“FontWeight”,“大胆”);

接受的答案

dpb
dpb 2021年11月8日
编辑:dpb 2021年11月8日
我会让你处理编码按钮的回调,但是
%……你上面的代码在这里……
甘氨胆酸hAx =;%得到轴处理
hLPeak = findobj (hAx.Children,“标签”,“高峰”);%,峰线处理
提示=“进入新的高峰X位置:”;%设置和调用一个输入对话框中得到一个新的x点
dlgtitle =“输入峰值”;
dim = 35 [1];
xpkNew = str2double (inputdlg(提示、dlgtitle dim));%和得到新的x(我进入0.8)
yPkNew = interp1 (x, PeakSig pkNew,“立方”);%找到价值
hLPkNew =情节(pkNew yPkNew hLPeak.Marker,“颜色”,“r”,“MarkerFaceColor”,“r”,
“MarkerSize”,hLPeak.MarkerSize);%,画一个新标志
你可以把上面的一个循环或让多次按钮被按下;你只需要让新x, y高峰值是数组让他们分开,不写。
或者,正如我在你上次指出的问同样的问题,你可以调用 ginput 在这里用它——你会局限于点实际的 x 数组,但是;这让你任意设定的x值无论x间距。
以上生产

更多的答案(0)

下载188bet金宝搏


释放

R2020a

社区寻宝

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

开始狩猎!