如何使用FindPeak在Matlab中正确绘制山谷

如何使用FindPeak在Matlab中正确绘制山谷,matlab,plot,max,minimum,Matlab,Plot,Max,Minimum,我有一个向量Ir,我正在尝试使用findpeaks函数识别峰值和谷值 然而,当我绘制山谷时,我得到了下图,我做错了什么 这是我的代码,我假设我在反转数据集时做错了什么 [ypk,yt] = findpeaks( Ir,'MinPeakProminence', 5); ypk2=[] yt2=[] for w = 1:numel(ypk) if ypk(w) >=0 ypk2 = [ypk2;ypk(w)] yt2 = [yt2;yt(w)]

我有一个向量Ir,我正在尝试使用findpeaks函数识别峰值和谷值

然而,当我绘制山谷时,我得到了下图,我做错了什么

这是我的代码,我假设我在反转数据集时做错了什么

[ypk,yt] = findpeaks( Ir,'MinPeakProminence', 5);
ypk2=[]
yt2=[]
for w = 1:numel(ypk)
    if ypk(w) >=0
        ypk2 = [ypk2;ypk(w)]
        yt2 = [yt2;yt(w)]
    end
end


%upsidedownIr = max(Ir)-Ir
upsidedownIr = -Ir
[ypk3,yt3] = findpeaks( upsidedownIr,'MinPeakProminence', 2);
ypk4=[]
yt4=[]
for w = 1:numel(ypk3)
    if ypk3(w) >=0
        ypk4 = [ypk4;ypk3(w)]
        yt4 = [yt4;yt3(w)]
    end
end


figure(1), clf

plot(time,Ir,'k-')
hold on
plot(time(yt2),ypk2,'r*')
plot(time(yt4),ypk4,'g*')

山谷的符号不正确,请将其否定,否则值是正确的

尝试
-1*ypk4
最后,您将代码中的
Ir
反转,这会将谷值作为正值,因此您必须再次将它们转换为负值才能获得正确答案 或


山谷的符号不正确,请将其否定,否则值是正确的

尝试
-1*ypk4
最后,您将代码中的
Ir
反转,这会将谷值作为正值,因此您必须再次将它们转换为负值才能获得正确答案 或


我所看到的是山谷的符号是错误的,应该是负数,如果我的假设没有错,试试-1*ypk4谢谢,@Umar!你到底在哪里看到的?我这样问是因为我对这一点还不熟悉,我不确定我应该在哪里更换标志。抱歉,刚刚看到您的编辑!完美@Umar!谢谢,请作为答案发布,我可以接受!我所看到的是山谷的符号是错误的,应该是负数,如果我的假设没有错,试试-1*ypk4谢谢,@Umar!你到底在哪里看到的?我这样问是因为我对这一点还不熟悉,我不确定我应该在哪里更换标志。抱歉,刚刚看到您的编辑!完美@Umar!谢谢,请作为答案发布,我可以接受!
ypk4 = -1*ypk4