So lösen Sie diesen allgemeinen Matlab-Matrixtrick

  • Nur ein allgemeiner Matlab-Matrix-Trick, den ich zu verstehen versuche? Was bedeutet diese Zeile eigentlich logisch?

     S=X*X';
     

    Was macht S, wenn ich eine generische Matrix gegen sich selbst transponiere? Danke

    22 November 2011
    heavy rocker dude
1 answer
  • Wenn X eine allgemeine NxM -Matrix ist, ist S=X*X' die Summe der äußeren Produkte jeder der Spalten von X mit ihrer Transponierten. Mit anderen Worten, das Schreiben von X=[x1,x2,...,xM], S kann als

     S = ∑_i x_i * x_i'
     

    Die resultierende Matrix geschrieben werden S ist nicht negativ definitiv (dh, Eigenwerte sind nicht negativ).

    Wenn Sie jedes Element in einer Spalte von X als Zufallsvariable betrachten (total N) und die verschiedenen Spalten als M unabhängige Beobachtungen des N dimensionalen Zufallsvektors, dann S ist der NxN Muster-Kovarianzmatrix (die sich durch eine konstante Normalisierung je nach Ihren Konventionen unterscheidet) der Zeilen. In ähnlicher Weise erhalten Sie mit S=X'*X die Kovarianzmatrix MxM der Spalten.


    Nun, wenn Sie die Allgemeinheit einschränken und special zuweisen Eigenschaften von X, dann werden Sie Muster für die Struktur von S sehen. Wenn zum Beispiel X ein Quadrat ist, echte Einträge hat und orthogonal ist, dann S=I die Identitätsmatrix. Wenn X ein Quadrat ist, komplexe Einträge hat und eine einheitliche Matrix ist, dann ist S dann wieder die Identitätsmatrix.

    Ohne die genauen Umstände zu kennen, unter denen dies in Ihrem Programm verwendet wurde, würde ich davon ausgehen, dass sie die Kovarianzmatrix berechnet haben.

    22 November 2011
    abcd