pca降维matlab代码
时间: 2023-05-31 15:05:02 浏览: 37
以下是一个简单的PCA降维的Matlab代码示例:
1. 读取数据
```matlab
data = load('data.txt'); % 读取数据文件
```
2. 标准化数据
```matlab
data = (data - mean(data)) ./ std(data); % 标准化数据
```
3. 计算协方差矩阵
```matlab
covarianceMatrix = cov(data); % 计算协方差矩阵
```
4. 计算特征向量和特征值
```matlab
[featureVectors, eigenValues] = eig(covarianceMatrix); % 计算特征向量和特征值
```
5. 对特征向量进行排序
```matlab
[~, indices] = sort(diag(eigenValues), 'descend'); % 对特征值进行排序
sortedFeatureVectors = featureVectors(:, indices); % 对特征向量进行排序
```
6. 选择前k个特征向量
```matlab
k = 2; % 选择前k个特征向量
selectedFeatureVectors = sortedFeatureVectors(:, 1:k); % 选择前k个特征向量
```
7. 降维
```matlab
reducedData = data * selectedFeatureVectors; % 降维
```
完整的代码如下:
```matlab
data = load('data.txt'); % 读取数据文件
data = (data - mean(data)) ./ std(data); % 标准化数据
covarianceMatrix = cov(data); % 计算协方差矩阵
[featureVectors, eigenValues] = eig(covarianceMatrix); % 计算特征向量和特征值
[~, indices] = sort(diag(eigenValues), 'descend'); % 对特征值进行排序
sortedFeatureVectors = featureVectors(:, indices); % 对特征向量进行排序
k = 2; % 选择前k个特征向量
selectedFeatureVectors = sortedFeatureVectors(:, 1:k); % 选择前k个特征向量
reducedData = data * selectedFeatureVectors; % 降维
```