WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Hauptachsentransformation zur Analyse mehrdim. Messdaten

 

KörperKlaus
Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 29.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.11.2016, 15:04     Titel: Hauptachsentransformation zur Analyse mehrdim. Messdaten
  Antworten mit Zitat      
Hallo,
ich möchte eine Hauptachsentransformation zwecks der Analyse mehrdimensionaler Messdaten durchführen.
Ziel ist es herauszufinden entlang welcher Richtungen die größte Streuung der Daten vorkommt.
Alle Messdaten sein als Vektoren in einer Matrix A gespeichert.

1) Wie berechnet sich der Durchschnittliche Datenvektor?
2) Wie wird die Subtraktion des Durchschnittsvektors von jedem Messdatum in A durchgeführt?
3) Wie erfolgt die Berechnung der Auto-Korrelatioxsmatrix A^T*A?
4) Die Berechnung der Eigenwerte und Eigenvektoren der Auto-Korrelatioxsmatrix ist mit eig durchzuführen.

Je größer der zum Eigenvektor gehörende Eigenwert desto größer die Streuung in der entsprechenden Richtung.

Bin völlig neu auf dem Gebiet, wäre für Erklärungen, Tipps oder Links sehr dankbar. Zum Stichwort Hauptachsentransformation habe ich hier leider nichts gefunden.

Grüße

daten.mat
 Beschreibung:

Download
 Dateiname:  daten.mat
 Dateigröße:  1.73 KB
 Heruntergeladen:  397 mal
Private Nachricht senden Benutzer-Profile anzeigen


Friidayy
Forum-Century

Forum-Century


Beiträge: 225
Anmeldedatum: 17.12.13
Wohnort: ---
Version: R2012b
     Beitrag Verfasst am: 12.11.2016, 18:02     Titel:
  Antworten mit Zitat      
Hört sich für mich an als wolltest du eine PCA (Principal Component Analysis) durchführen.

Ich kann dir dieses Video auf Youtube empfehlen https://www.youtube.com/watch?v=7OAs0h0kYmk

Ansonsten kannst du auch einen fertigen PCA Algorithmus von MATLAB benutzten https://de.mathworks.com/help/stats.....dDomain=www.mathworks.com
Private Nachricht senden Benutzer-Profile anzeigen
 
KörperKlaus
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 29.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2016, 13:56     Titel:
  Antworten mit Zitat      
Danke für die Antwort, Friidayy.

Die Antwort auf meine Frage 1) habe ich im Befehle >> mean(data) gefunden. Damit lässt sich der Durchschnittsvektor in Bruchteilen von Sekunden berechnen.

Die Frage 2) habe ich noch nicht geklärt bekommen. Mein Problem liegt hier in den unterschiedlichen Matrix-Dimensionen. Meine Idee war einfach >> data - Durchschnittsvektor

Frage 3) und 4) ebenfalls noch ungeklärt.

Der Erste Link war interessant hat mir nur bedingt bei meinem Problem geholfen.

Der PCA Algorithmus von Matlab hat mir schon mal die gesuchten Eigenvektoren ausgespuckt: >> coeff = pca(data)
... nur nicht auf wem Weg den ich gerne gehen würde.
Private Nachricht senden Benutzer-Profile anzeigen
 
KörperKlaus
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 18
Anmeldedatum: 29.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2016, 14:11     Titel:
  Antworten mit Zitat      
Ich kenne die Lösung meiner Autokorelationsmatrix A^T*A
Sie lautet [ 102.5360 139.6954; 139.6954 307.8262]

Ich komme aber nicht auf diese Lösung.
Was ich getan habe war die Ursprungsmatrix zu Transponieren mit Hilfe von .'
also B = data.' btw B = transpose(data)
Dann habe ich B mit data multipliziert und erhalte

ans =

1.0e+03 *

0.5551 0.8341
0.8341 1.3733

aber auch wenn ich 1.0e+03 mit den einzelnen Komponenten multipliziere erhalte ich nicht das oben genannte Ergebnis. Was mache ich falsch?
Private Nachricht senden Benutzer-Profile anzeigen
 
Miya

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2019, 18:23     Titel: Lieber späte Hilfe als nie!!! ;)
  Antworten mit Zitat      
Ich hatte das gleiche Problem und hab hier auf eine Antwort gehofft....

Nach langem Ausprobieren, bin ich dann auf die Lösung gekommen:

A=data -> Vektor zu den Messdaten


1. D = mean(A) -> Durchschnittsvektor

2. B = A - D -> Vektor für

3. AK = B’ * B -> Autokorrelationsmatrix

4. [V,L] = eig(AK) L = Eigenwerte in Diagonalmatrix
V = Eigenvektor v1; v2 in Spalten vom Vektor


Ich hoffe auch nach 3 Jahren kann es jemandem helfen Very Happy
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.