为什么我在尝试使用 matlab 交叉验证 PCR 时收到错误消息?

Why do I get error message trying to crossvalidate PCR using matlab?

我正在使用建议的命令 here。当我执行

PCRmsep = sum(crossval(@pcrsse,X,Y,'KFold',6),1) / n;

我收到以下错误消息:

Error using crossval>evalFun (line 480) The function 'pcrsse' generated the following error: Index exceeds matrix dimensions.

Error in crossval>getFuncVal (line 497) funResult = evalFun(funorStr,arg(:));

Error in crossval (line 343) funResult = getFuncVal(1, nData, cvp, data, funorStr, []);

这个错误是什么意思,我该如何防止这个错误?

X: 24x9 matrix

Y: 24x1 matrix

我是 Matlab 的新手,也在尝试使用这个函数。我遇到了同样的错误并查看了函数。对我来说,保存一个副本并将 maxNumComp 值从 10 更改为 8(我有 8 个预测变量)使它起作用。尚未弄清楚为什么...