📄 fttplsp1.m
字号:
function [Ypred]=fttplsp1(Xcal,r1,r2,r3,W,Xpred,Ycal,CenMode)
%function [Ypred]=fttplsp1(Xcal,r1,r2,r3,W,Xpred,Ycal,CenMode)
%
%This tri-linear PLS prediction program predicts on basis of an
%unknown X The procedure has been implemented excactly as proposed
%by Bro (1995)
%
% Xcal : Supermatrix (r1 x r2穜3) from cube (r1 x r2 x r3).
% This supermatrix contains the data on which to
% calibrate prediction parameters.
% r1,r2,r3 : Number of observations along each way.
% W1,W2,W3 : Number of factors along each way.
% Xpred : Supermatrix (rp x r2穜3) with objects whose
% Y-values must be estimated.
% Ycal : Y values to use for calibration, must have same
% number of rows as Xcal. Ycal (r1 x ry)
% CenMode : If CenMode=0 no centering - else centering.
% Ypred : Ypred (rp x ry) Predicted values for the objects
% contained in Xpred.
% R : Regression coefficients. R (W1 x ry)
% Author : Claus A. Andersson, June 1995
% Copyright: Food Technology,
% Royal Veterinary & Agricultural University
% Copenhagen, Denmark
% E-mail : claus.andersson@pop.foodsci.kvl.dk
rpred1=size(Xpred,1);
ry=size(Ycal,2);
%Center X and Y
if CenMode==1,
st=ones(size(Xcal,1),1);
XCen=mean(Xcal);
Xcal=Xcal-(st*XCen);
end;
if CenMode==1,
st=ones(size(Ycal,1),1);
YCen=mean(Ycal);
Ycal=Ycal-(st*YCen);
end;
%Calculate the factors for prediction
[T,Wj,Wk,U,Q,B]=fttpls01(Xcal,Ycal,r1,r2,r3,W,0);
%Unfolds the loadingplane
loads=zeros(W,r2*r3);
for w=1:W,
loads(w,:)=kron(Wk(:,w)',Wj(:,w)');
end;
%Calculates scores of each old object
Tcal=zeros(r1,W);
for i=1:r1,
for w=1:W,
Tcal(i,w)=Tcal(i,w)+Xcal(i,:)*loads(w,:)';
end;
end;
%Center Xpred
if CenMode==1,
st=ones(size(Xpred,1),1);
Xpred=Xpred-(st*XCen);
end;
%Calculates the scores of Xpred
Tpred=zeros(rpred1,W);
for i=1:rpred1,
for w=1:W,
Tpred(i,w)=Tpred(i,w)+Xpred(i,:)*loads(w,:)';
end;
end;
%Calculates the predicted values from Xpred
Ypred=zeros(rpred1,ry);
for y=1:ry,
R=Tcal\Ycal(:,y);
Ypred(:,y)=Tpred*R;
end;
%Center Ypred
if CenMode==1,
st=ones(size(Ypred,1),1);
Ypred=Ypred+(st*YCen);
end;
disp('FTTPLSP1: Execution ended.')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -