• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: matlab  PLS  

资源简介

偏最小二乘算法,多输入单输出系统模型的matlab程序。

资源截图

代码片段和文件信息

%PLS 多输入单输出
clc
clear all
close all
% f1=100;f2=120;f3=130;f4=140;f5=150;f6=160;
f1=100;f2=120;f3=130;f4=140;f5=150;f6=160;
fs=400;
t=0:1/fs:0.6;
x1=1.5*sin(2*pi*f1*t)+2.4*sin(2*pi*f2*t)+0.5*sin(2*pi*f3*t);
x2=2.5*sin(2*pi*f1*t+pi/2)+1.4*sin(2*pi*f2*t)+1.8*sin(2*pi*f4*t);
x3=1.6*sin(2*pi*f3*t)+2.4*sin(2*pi*f4*t)+1.2*sin(2*pi*f5*t);
x4=0.5*sin(2*pi*f4*t+pi/2)+2.5*sin(2*pi*f5*t)+1.2*sin(2*pi*f6*t);
x5=2.8*sin(2*pi*f1*t)+2.1*sin(2*pi*f3*t);
x6=1.3*sin(2*pi*f2*t+pi/2)+2*sin(2*pi*f4*t);
y=x1+x2+x3+x4+x6+randn(size(t));
y=y‘;
x=[x1‘x2‘x3‘x4‘x5‘x6‘];

figure
subplot(211)
plot(x);
title(‘输入变量‘);
xlabel(‘样本数‘);
ylabel(‘变量值‘);
subplot(212)
plot(y)
title(‘输出变量‘);
xlabel(‘样本数‘);
ylabel(‘变量值‘);
% 显示变量
whos
% 数据标准化
[mn] = size(x);
meanx=mean(x);  
stdx=std(x); 
E0=(x-meanx(ones(m1):))./stdx(ones(m1):); 
[myny] = size(y);
meany=mean(y);  
stdy=std(y);  
F0=(y-meany(ones(my1):))./stdy(ones(my1):);
figure
subplot(211)
plot(E0);
title(‘标准化输入变量‘);
xlabel(‘样本数‘);
ylabel(‘变量值‘);
subplot(212)
plot(F0)
title(‘标准化输出变量‘);
xlabel(‘样本数‘);
ylabel(‘变量值‘);

figure 
[plspressplscumpress] = crossval(E0F0‘sim‘‘con‘n2);

figure
subplot(221)
plot(plspress‘‘-o‘)
xlabel(‘潜变量数‘)
title(‘PLS Individual PRESS Curves‘)
ylabel(‘PRESS‘)
subplot(222)
plot(plscumpress‘-o‘)
xlabe

评论

共有 条评论