matlab练习程序(数据主方向)
计算方法还是svd,这里把两个轴显示出来了。
过去用svd做过pca,就是在此基础上多一步运算,把原始数据旋转到主轴对应的坐标系上即可。
matlab代码如下:
clear all; close all; clc; mu = [0 0]; sigma = [1 1.3;1.3 3]; data = mvnrnd(mu,sigma,1000); me = mean(data); sigma =(data-me)'*(data-me) / (length(data)-1); plot(data(:,1),data(:,2),'.'); hold on; [u,s,v] = svd(sigma); plot([0 u(1,1)*5], [0 u(2,1)*5]); %乘个5好看 plot([0 u(1,2)*5], [0 u(2,2)*5]); axis([-6 6 -6 6])
结果: