clc,clear,format short,close all; load data_mh.mat; [n,p]=size(x); %标准化 X=zscore(x); %协方差矩阵/相关系数矩阵 R=cov(X); [V,D]=eig(R);%[特征向量,特征值] lambda=diag(D); lambda=lambda(end:-1:1); total_contri=sum(lambda); cum_contri=cumsum(lambda); contri_rate=cum_contri/total_contri; V1=rot90(V)'; disp(V1); c1=V1(:,1); c2=V1(:,2); XX=X*c1; YY=X*c2; figure; scatter(XX, YY, 'filled'); xlabel('第一主成分'); ylabel('第二主成分'); title('主成分得分图'); grid on; %散点 figure; scatter(XX,YY,'k.'); figure; plot(c1, c2, 'o', 'MarkerSize', 8, 'MarkerFaceColor', 'b'); text(c1, c2, cellstr(num2str((1:p)')), 'VerticalAlignment','bottom', 'HorizontalAlignment','right'); xlabel('第一主成分'); ylabel('第二主成分'); title('主成分载荷图'); grid on; %主成分得分图(Score Plot) X = randn(100, 5); % 主成分分析 [coeff, score, latent, tsquared, explained, mu] = pca(X); % 绘制前两个主成分的得分图 figure; scatter(score(:,1), score(:,2)); xlabel('第一主成分'); ylabel('第二主成分'); title('主成分得分图'); grid on; % 添加数据点标签 text(score(:,1), score(:,2), num2str((1:size(score,1))'), 'FontSize', 8);