我在进行主成分分析,需要帮助了解是否可以用数据矩阵表示从i到m的求和(X(i)*X(i)^T),直接通过两个矩阵的乘法来实现。
这是否可行,或者我需要使用for循环来完成?
目前我尝试了以下方法:
sum=zeros(n,n); for i=1:m sum=sum+ X(i,:)*(X(i,:)^T); end
我的目标是找到结果矩阵的主特征值。提前感谢您的帮助。
回答:
假设数据矩阵X
的形状是(Dim, Num),你可以直接计算所有样本相关性的总和:
S = X*X'
在实现PCA时,别忘了将矩阵除以样本数量。
Sigma = (1/N)X*X'
如果你的数据均值为零,这也是协方差矩阵。