0

私が理解しようとしている一般的なMatlab行列のトリックですか? この行は論理的に何を意味するのでしょうか?

S=X*X';

一般的な行列を自分自身に対して転置すると、S は何を達成しますか? ありがとう

4

2 に答える 2

4

Xが一般的なNxM行列の場合、S=X*X'はの各列の外積Xとその転置の合計です。言い換えれば、書くことはX=[x1,x2,...,xM]、次のように書くSことができます

S = ∑_i x_i * x_i'

結果の行列Sは非負の確定です(つまり、固有値は負ではありません)。

の列の各要素をX確率変数(合計N)と見なし、異なる列を次元確率ベクトルMの独立した観測値と見なす場合、のサンプル共分散行列(規則に応じて一定の正規化によって異なります)は次のようになります。行。同様に、列の共分散行列を与えます。NSNxN S=X'*XMxM


ここで、一般性を制限し、に特別なプロパティを割り当てるとX、の構造のパターンが出現し始めますS。たとえば、Xが正方形で、実数のエントリがあり、直交している場合S=I、単位行列です。Xが正方形で、複素数のエントリがあり、ユニタリ行列である場合、S再び単位行列になります。

これがプログラムで使用された正確な状況を知らなくても、共分散行列を計算していると思います。

于 2011-11-22T01:34:33.110 に答える
2

これが共分散行列にどのように関連しているかを示す例を次に示します(@yodaが説明したように):

X = randn(5,3);                     %# 3 column-vectors each of dimension=5
X0 = bsxfun(@minus, X, mean(X,2));  %# zero-centered

C = (X0*X0') ./ (size(X0,2)-1)      %'# sample covariance matrix
CC = cov(X')                        %'# should return the same result
于 2011-11-22T02:01:50.963 に答える