Der folgende Code normalisiert einen Vektor, der sowohl positive als auch negative Werte in einem Bereich von [-1,1] hat. Wenn Sie sich jedoch das Diagramm ansehen, werden Sie feststellen, dass das Diagramm aufgrund der Art der Normalisierung nach unten verschoben ist.Normalisieren durch Quetschen/Dehnen von Daten zwischen -1 und 1
Frage:
Gibt es eine Möglichkeit, die Methode zu ändern, um die Daten zwischen -1 und 1 ohne Verschieben der Daten zu normalisieren?
%# generate some vector
vec = [0,0.5,0.8660254040,.8,0.866025404,0.5,1.22E-16,-0.1,-0.4,-0.3, ...
-0.6,-0.5,-2.45E-16,0.5,0.866025404,1.3,0.866025404,0.5,3.67E-16, ...
-0.5,-0.4,-0.7,-0.7,-0.5,-4.90E-16];
%# get max and min
maxVec = max(vec);
minVec = min(vec);
%# normalize to -1...1
vecN = ((vec-minVec)./(maxVec-minVec) - 0.5) *2;
% plot results
plot(vec,'k'); hold on;
plot(vecN,'--r'); hold off;
Plot von Original-Vektor (schwarz) vs normalisierte Vektor (rot gestrichelt)
Dieses Verhalten des Vektors normalisiert aber verschiebt sich die Handlung, die nicht erwünscht ist.
Das ändert auch den Mittelwert, oder? –
Ja, tut es. Ich verwendete "gemein", weil es kein besseres Wort gab, und versuchte, es besser zu machen, indem ich "relativ gemein" sagte. Es war eindeutig nicht sehr effektiv. Verzeihe die Verwirrung. Ich versuchte herauszufinden, dass ich eine Methode wollte, die die Daten nicht auf Null verschiebt. –