PCA源代码 基于MATLAB的

这是一个基于MATLAB的PCA(主成分分析)源代码实现,用于处理n*T阶混合数据矩阵。代码首先进行数据去均值,然后计算协方差矩阵,接着求解特征值和特征向量。通过设定阈值选择保留的特征值,最后得到主分量矩阵。程序还包含了白化矩阵和去白化矩阵的计算,并提供了输出相关信息的选项。
摘要由CSDN通过智能技术生成


01.function y = pca(mixedsig)

02.

03.%程序说明:y = pca(mixedsig),程序中mixedsig为 n*T 阶混合数据矩阵,n为信号个数,T为采样点数

04.% y为 m*T 阶主分量矩阵。

05.% n是维数,T是样本数。

06.

07.if nargin == 0

08.    error('You must supply the mixed data as input argument.');

09.end

10.if length(size(mixedsig))>2

11.    error('Input data can not have more than two dimensions. ');

12.end

13.if any(any(isnan(mixedsig)))

14.    error('Input data contains NaN''s.');

15.end

16.

17.%——————————————去均值————————————

18.meanValue = mean(mixedsig')';

19.[m,n] = size(mixedsig);

20.%mixedsig = mixedsig - meanValue*ones(1,size(meanValue)); %当数据本身维数很大时容易出现Out of memory

21.for s =  1:m

22.    for t = 1:n

23.        mixedsig(s,t) = mixedsig(s,t) - meanVal

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值