24小时热门版块排行榜    

查看: 307  |  回复: 0

ruanxf04

铜虫 (初入文坛)

[交流] 【求助】用pls工具箱来分析数据,不知道出错的原因?请专家帮我分析下!

各位专家好,下面是我用PLS处理数据的程序,但是出错了,找不出原因?请求各位帮忙解决!指点迷津!
X=[0.0111 0.000 0.0014;0.0525 0.0001 0.0076;0.1787 0.0006 0.0319;
    0.4401 0.0045 0.1046;0.7862 0.0251 0.2671;1.0296 0.1007 0.5311;
    1.0204 0.2911 0.8228;0.8354 0.6076 0.9935;0.6683 0.9184 0.9376;
    0.5853 1.0162 0.7019;0.5097 0.8604 0.4478;0.3819 0.6481 0.3166
    0.2295 0.5709 0.3474;0.1082 0.6074 0.4876;0.0398 0.6059 0.6375];
Y=[0.0000;0.0000;0.1134;0.2389;0.5602;0.8881;1.1865;1.4471;1.6294;1.5744;
    1.1889;0.9459;0.7914;0.9065;0.8835];
x=[0.0114 0.4849 0.7005;0.0025 0.2978 0.6342;0.0004 0.1389 0.4716;
    0.0001 0.0492 0.2878;0.0000 0.0132 0.1441];
y=[0.8884;0.6532;0.3910;0.1903;0.0297];
[n,k]=size(X);
m=size(Y,2);
pmax=n-1;
q=m;
ERROR=zeros(1,pmax);
PRESS=zeros(1,pmax);
SECV=zeros(1,pmax);
SEC=zeros(1,pmax);
XX=X;
YY=Y;
N=size(XX,1);
for p=1:pmax
    disp(p);
    Err1=zeros(1,N);%绝对误差
    Err2=zeros(1,N);%相对误差
    for i=1:N
        disp(i);
        if i==1
            x=XX(1, :);
            y=YY(1,:);
            X=XX(2:N,:);
            Y=YY(2:N,:);
        elseif i==N
            x=XX(N,:);
            y=YY(N,:);
            X=XX(1:(N-1),:);
            Y=YY(1:(N-1),:);
        else
            x=XX(i,:);
            y=YY(i,:);
            X=[XX(1:(i-1),:);XX((i+1):N,:)];
            Y=[YY(1:(i-1),:);YY((i+1):N,:)];
        end
        [y5,e1,e2]=PLS(X,Y,x,y);
        Err1(i)=e1;
        Err2(i)=e2;
    end
    ERROR(p)=sum(Err2)/N;
    PRESS(p)=sum(Err1.^2);
    SECV(p)=sqrt(PRESS(p)/n);
    SEC(p)=sqrt(PRESS(p)/(n-p));
end
%%
[CX,SX,LX]=princomp(X);
S=SX(:,1:p);
MD=zeros(1,n);
for j=1:n
    s=S(j,:);
    MD(j)=(s')*(inv(S'*S))*(s);
end

     1

     1

??? Error using ==> PLS
Too many input arguments.

pls使用出错了,不知道为什么?求各位专家帮帮我!不胜感激

[ Last edited by ruanxf04 on 2010-10-19 at 14:11 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ruanxf04 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见