Hallo, ich bin Matlab-Anfänger und komme einfach nicht weiter.
Problem: Meine Eingangsmatrix besteht aus Messdaten. Je Spalte ein Sensor. Start- und Endzeitpunkte der Messdaten sind immer unterschiedlich. In der Matrix werden die leeren Felder durch NaN aufgefüllt, damit jede spalte die gleiche Länge hat. Anschließend wird jede Zeile mit einem NaN Wert aus der Matrix gelöscht. Anschließend wird über corrcoef eine Korrelationsmatrix erstellt. Aufgrund des löschens der NaN Werte/Zeilen reduziert sich die Anzahl der korrelierbaren Messwerte teils erheblich. Die Matrix wird ja auf die kleinste gemeinsame Datenreihenlänge reduziert.
Ich möchte daher bei der Korrelation immer nur zwei Messreihen über corrcoef korrelieren, damit immer die max. mögliche Anzahl an Messwerten bei der Korrelation berücksichtigt werden kann.
In meinem nachfolgenden und vereinfachten Beispiel wird für jede Datenreihenkombination aus der Matrix A_hd der Korrelationskoeffizient R1 berechnet. Dieser wird allerdings immer wieder überschrieben. Ich möchte in der Matrix Korr_hd sämtliche Korrelationskoeffizienten gespeichert bekommen. Das sollten 9 Werte sein.
Jemand eine Idee?
Code:
A_hd = [1,4,6;4,6,8;2,6,9]% Matrix mit sämtlichen Geberdaten for i=1:1:size(A_hd,2) for ii=1:1:size(A_hd,2)
C = A_hd(:,[i ii])
G = corr(C)
R1(ii) = G(1,2) end
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.