Ich habe jetzt Minima und Maxima in der Ausgabe (Abb. 1), aber ich würde gerne Beschriftungen (Abb. 2) für sortierte Maxima bekommen (höchstes erhalten 1, ...) und ähnlich für Minima (niedrigstes bekommt 1). kann ich die Ausgabe von Figur tun. 1 durch die folgenden, aber ich kann diese Anmerkungen zur FunktionWie wird Annotate erweitert ... in diesen MATLAB-Findpeaks?
close all; clear all; clc;
% https://se.mathworks.com/help/signal/ref/findpeaks.html
% http://stackoverflow.com/a/26837689/54964
x = linspace(0,1,1000);
Pos = [1 2 3 5 7 8]/10;
Hgt = [4 4 2 2 2 3];
Wdt = [3 8 4 3 4 6]/100;
for n = 1:length(Pos)
Gauss(n,:) = Hgt(n)*exp(-((x - Pos(n))/Wdt(n)).^2);
end
PeakSig = sum(Gauss) - exp(sum(Gauss))/10;
plot(x, PeakSig);
hold on;
[p l]=findpeaks(PeakSig); %,x); %,'Annotate','extents','WidthReference','halfheight')
plot(x(l), p, 'ko', 'MarkerFaceColor', 'g');
[pn ln]=findpeaks(-PeakSig); %,x); %,'Annotate','extents','WidthReference','halfheight')
plot(x(ln), -pn, 'ko', 'MarkerFaceColor', 'r');
title('Signal Peak Widths')
Um nur anhängen 'Annotate','extents','WidthReference','halfheight')
-[p l]=findpeaks(...)
funktioniert nicht in der Anwendung usw. Folgenden offenbar, weil das Verfahren Linie plot(x(l), p, 'ko', 'MarkerFaceColor', 'g');
nicht integrieren versteht den zusätzlichen Inhalt durch die Einzeiler in den entsprechenden Variablen gemacht
[p l]=findpeaks(PeakSig,'Annotate','extents','WidthReference','halfheight')
[p l]=findpeaks(PeakSig, x, 'Annotate','extents','WidthReference','halfheight')
Abb. 1 Stromausgang ohne diese Anmerkungen, Abb. 2 Erwartete Ausgabe aber mit Noten von Maxima und Minima
MATLAB: 2016b
OS: Debian 8.5 64-Bit-
Hardware: Asus Zenbook UX303UA
Nein, es verwendet 'findpeaks', es ersetzt nur den Abschnitt'% Plotten: 'in der ersten Antwort. Es unterscheidet sich nur in der Art, wie Sie die Spitzen annotieren. – EBH
Können Sie bitte kurz am Anfang der Antwort verbal hinzufügen, wie sich die Anmerkungen hier unterscheiden. –