如何使用 Findpeaks 在 Matlab 中正确绘制山谷
How to plot valleys correctly in Matlab using Findpeaks
我有一个向量 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
,这给你的山谷作为正值,所以你必须再次将它们变成负数以获得正确的答案
或
ypk4 = -1*ypk4
我有一个向量 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
,这给你的山谷作为正值,所以你必须再次将它们变成负数以获得正确的答案
或
ypk4 = -1*ypk4