function RMSE = RMSEcalculKSI(ksimodel,testdataZA,RMSEs,models)
MAM=ksimodel.MAM;
ksi=ksimodel.ksi;
Xnew=ksimodel.X;
XtestZA=testdataZA(:,1:2);
RMSEZA=RMSEs.ZA;
YtestZA=simlssvm(models.ZA,XtestZA);
a=length(XtestZA);
Ytest=zeros(a,3);
%first calculate the traction forces of the testdata
% if sum(MAM)==1
% if MAM(1)==1
% Ytest(:,1)= simlssvm(models.MAe,XtestZA);
% RMSEh(1)=RMSEs.MAe;
% elseif MAM(2)==1
% Ytest(:,1)= simlssvm(models.MAn,XtestZA);
% RMSEh(2)=RMSEs.MAn;
% elseif MAM(3)==1
% Ytest(:,1)= simlssvm(models.MAp,XtestZA);
% RMSEh(3)=RMSEs.MAp;
% else
% Ytest(:,1)=0;
% R
% end
% else
% if MAM(1)==1
% Ytest(:,1)= simlssvm(models.MAe,XtestZA);
% RMSEh(1)=RMSEs.MAe;
% else
% Ytest(:,1)=0;
% end
% if MAM(2)==1
% Ytest(:,2)= simlssvm(models.MAn,XtestZA);
% RMSEh(2)=RMSEs.MAn;
% else
% Ytest(:,2)=0;
% end
% if MAM(3)==1
% Ytest(:,3)= simlssvm(models.MAp,XtestZA);
% RMSEh(3)=RMSEs.MAp;
% else
% Ytest(:,3)=0;
% end
if MAM(1)==1
Ytest(:,1)= simlssvm(models.MAe,XtestZA);
RMSEh(1)=RMSEs.MAe;
else
Ytest(:,1)=0;
end
if MAM(2)==1
Ytest(:,2)= simlssvm(models.MAn,XtestZA);
RMSEh(2)=RMSEs.MAn;
else
Ytest(:,2)=0;
end
if MAM(3)==1
Ytest(:,3)= simlssvm(models.MAp,XtestZA);
RMSEh(3)=RMSEs.MAp;
else
Ytest(:,3)=0;
end
% Here calculate ksitest
for k=1:3
if MAM(k)==1
for i=1:length(XtestZA)
ksitest(i,k)=1-YtestZA(i)/Ytest(i,k);
end
else
for i=1:length((XtestZA))
ksitest(i,k)=0;
end
end
end
%Calculate the RMSE
%Remove the smallest forces (smaller than 5N)
maxtrek=5;
for i=1:length(XtestZA)
for j=1:3
if Ytest(i,j)<maxtrek
Ytest(i,j)=NaN;
end
end
end
%
maxtrek=2;
for i=1:length(XtestZA)
if YtestZA(i)<maxtrek
YtestZA(i)=NaN;
end
end
%The percental error on the traction forces
procZA=RMSEZA./YtestZA;
for k=1:3
if MAM(k)==1
proc(:,k)=RMSEh(k)./Ytest(:,k);
else
proc(:,k)=ksitest(:,k);
end
end
%The percental errors on the ksis
for k=1:3
if MAM(k)==1
procksi(:,k)=procZA+proc(:,k);
else
procksi(:,k)=ksitest(:,k);
end
end
%The absolute errors on the ksis
for k=1:3
if MAM(k)==1
absksi(:,k)=procksi(:,k).*ksitest(:,k) %please check again!!!!!!!!!!!!!!!!!!!!!!
else
absksi(:,k)=ksitest(:,k);
end
end
%remove NaNs
for k=1:3
r=1;
if MAM(k)==1
for i=1:length(YtestZA)
if not(isnan(absksi(i,k)))
abssksi(r,k)=absksi(i,k);
r=r+1;
else
r=r+1;
end
end
end
end
for k=1:3
if MAM(k)==1
RMSE(k)=mean(abs(abssksi(:,k)));
else
RMSE(k)=NaN;
end
end