pcr.m
来自「关于matlab主元分析的一个简单的实例」· M 代码 · 共 31 行
M
31 行
%random data
clear;
close all;
x1=4*rand(100,1);
x2=5*rand(100,1);
x3=4*x1+0.1*x2;
x=[x1,x2,x3];
y=x1+20*x2+20*x3;
[u,s,v]=svd(x);
t1=s(1,1)*u(:,1);
t2=s(2,2)*u(:,2);
t3=s(3,3)*u(:,3);
t=[t1,t2,t3];
p1=v(:,1);
p2=v(:,2);
p3=v(:,3);
p=[p1,p2,p3];
%choose the number of princomponent
k=2;
tk=t(:,1:k);
pk=p(:,1:k);
o=pk*(inv(tk'*tk))*(tk')*y;
yp=x*o;
e=y-yp;
ess1=norm(e)
figure(1);
plot(e,'r-*');
%------------norm rls
o2=(inv(x'*x))*(x')*y;
yp2=x*o2;
ess2=norm(y-yp2)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?