全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2497 3
2013-01-15
本人下载了一份偏最小二乘Matlab源代码,但运行中程序报错,求助各位高手帮助排解问题!!!!

function [t,q,w,wh,f0,FF]=fun717(px,py,C)
      %  px自变量的输入个数
      %  py输入因变量的个数。
      %   C输入的自变量和因变量组成的矩阵
      %  t提取的主成分
      %  q为回归系数。
      %  w最大特征值所对应的特征向量。
      %  wh处理后的特征向量
      %  f0回归的标准化的方程系数
      %  FF原始变量的回归方程的系数
c=norm1(C);                    %norm1为标准化函数
y=c(:,px+1:px+py);              %截取标准化的因变量
E0=c(:,1:px);
F0=c(:,px+1:px+py);
A=E0'*F0*F0'*E0;
w(:,1)=maxdet(A);               %求最大特征向量
t(:,1)=E0*w(:,1);               %提取主成分
     E(:,1:px)=E0-t(:,1)*(E0'*t(:,1)/(t(:,1)'*t(:,1)))';             %    获得回归系数
p(:,1:px)=(E0'*t(:,1)/(t(:,1)'*t(:,1)))';
          for i=0:px-2
B(:,px*i+1:px*i+px)=E(:,px*i+1:px*i+px)'*F0*F0'*E(:,px*i+1:px*i+px);
     w(:,i+2)=maxdet(B(:,px*i+1:px*i+px));  
%   maxdet为求最大特征值的函数
     t(:,i+2)=E(:,px*i+1:px*i+px)*w(:,i+2);                        
      p(:,px*i+px+1:px*i+2*px)=(E(:,px*i+1:px*i+px)'*t(:,i+2)/(t(:,i+2)'*t(:,i+2)))';
     E(:,px*i+px+1:px*i+2*px)=E(:,px*i+1:px*i+px)-t(:,i+2)*(E(:,px*i+1:px*i+px)'*t(:,i+2)/(t(:,i+2)'*t(:,i+2)))';
end

for s=1:px
     q(:,s)=p(1,px*(s-1)+1:px*s)';      
end

[n,d]=size(q);

  for h=1:px
      iw=eye(d);
      for j=1:h-1
         iw=iw*(eye(d)-w(:,j)*q(:,j)');
      end
  
      wh(:,h)=iw*w(:,h);
  end
for  j=1:py
     zr(j,:)=(regress1(y(:,j),t))';      %求回归系数
end
for j=1:px
  fori=1:py                                                      %生成标准化变量的方程的系数矩阵
      w1=wh(:,1:j);
      zr1=(zr(i,1:j))';
      f0(i,:,j)=(w1*zr1)';
end
     
     [normxy,meanxy,covxy]=norm1(C);                              %normxy标准化后的数据矩阵  
%meanxy每一列的均值  
%covxy每一列的方差
     ccxx=ones(py,1)*meanxy(1,1:px);
     ccy=(covxy(1,px+1:px+py))'*ones(1,px);
     ccx=ones(py,1)*(covxy(1,1:px));
     ff=ccy.*f0(:,:,j)./ccx;
     fff=-(sum((ccy.*ccxx.*f0(:,:,j)./ccx)')-meanxy(1,px+1:px+py))';   
     FF(:,:,j)=[fff,ff];                                            %生成原始变量方程的常数项和系数矩阵
end

当程序运行至粉红色字段时,程序报错,试了很多方法,均不行。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-1-15 19:51:26
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-17 13:24:38
非常感谢,我再试试看,如有问题还望请教!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-1-21 14:28:45
话说那个程序好长啊,去看看喽。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群