matlab近红外光谱曲线,Matlab关于偏最小二乘法应用于近红外光谱分析的问题

博主在尝试使用MATLAB实现偏最小二乘法(PLS)进行近红外光谱分析时遇到错误,问题出在数据录入后第三步的线性回归阶段,提示'Y must be a vector.'。博主怀疑是数据格式不正确导致。同时,博主希望了解如何设计程序的GUI界面以满足可视化需求。提供的PLS函数包括数据预处理、主成分分析、线性回归等步骤。
摘要由CSDN通过智能技术生成

代码在最下面了,不能运行,是代码有错误嘛?

在录入数据以后,有提示:

??? Error using ==> regress

Y must be a vector.

错误位置是在第三步那里..

这个是什么意思?是录入的数据不对造成的么?

请高手解答...

另外想知道这个程序的gui界面应该弄成什么样子,老师要求实现可视化,可是不懂怎么弄.

高手都来帮帮忙吧..

代码:

function [y5,e1,e2]=PLS(X,Y,x,y,p,q)

%% 偏最小二乘回归的通用程序

%% 输入参数列表

% X        校正集光谱矩阵,n×k的矩阵,n个样本,k个波长

% Y        校正集浓度矩阵,n×m的矩阵,n个样本,m个组分

% x        验证集光谱矩阵

% y        验证集浓度矩阵

% p        X的主成分的个数,最佳取值需由其它方法确定

% q        Y的主成分的个数,最佳取值需由其它方法确定

%% 输出参数列表

% y5       x对应的预测值(y为真实值)

% e1       预测绝对误差,定义为e1=y5-y

% e2       预测相对误差,定义为e2=|(y5-y)/y|

%% 第一步:对X,x,Y,y进行归一化处理

[n,k]=size(X);

m=size(Y,2);

Xx=[X;x];

Yy=[Y;y];

x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值