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])
  

结果:

猜你喜欢

转载自www.cnblogs.com/tiandsp/p/12945983.html