Ich habe einen Vektor Ir und ich versuche, Spitzen und Täler mit Hilfe der Findpeaks-Funktion zu identifizieren.Wie man Täler in Matlab mit Findpeaks korrekt plottet
Allerdings, wenn ich die Täler plotten, bekomme ich das folgende Bild, was mache ich falsch?
Dies ist mein Code, nehme ich mir etwas tue, falsch, wenn ich INVERTIG den Datensatz bin?
[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*')
Nun, was kann ich sehen, ist, dass das Zeichen der Täler falsch ist, sollte es negativ sein, versuchen -1 * ypk4 wenn meine Annahme ist nicht falsch – Umar
Danke, @Umar! Wo genau siehst du das? Ich frage, weil ich neu bin und ich bin mir nicht sicher, wo ich das Zeichen ändern soll. Sorry, habe gerade deine Bearbeitung gesehen! – Spica
Perfekt @Umar! Danke, bitte posten als Antwort und ich kann es akzeptieren! – Spica