【问题标题】:Why do I get error message trying to crossvalidate PCR using matlab?为什么我在尝试使用 matlab 交叉验证 PCR 时收到错误消息?
【发布时间】:2016-08-09 12:21:34
【问题描述】:

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

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

我收到以下错误消息:

使用 crossval>evalFun 时出错(第 480 行) 函数“pcrsse”产生以下错误: 索引超出矩阵维度。

crossval 中的错误>getFuncVal(第 497 行)funResult = evalFun(funorStr,arg(:));

crossval 中的错误(第 343 行) funResult = getFuncVal(1, nData, cvp, data, funorStr, []);

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

X:24x9 矩阵

Y:24x1 矩阵

【问题讨论】:

  • 在 pcrse 函数中设置一个断点,你就会知道它是如何以及在哪里崩溃的。
  • dbstop if error 更好@giosans
  • dbstop 的使用暗示使用断点。毫无疑问,错误在pcrsse 中。 @Andre Biguri,

标签: matlab error-handling regression evaluation


【解决方案1】:

我是 Matlab 新手,也在尝试使用此功能。我遇到了同样的错误并查看了该功能。对我来说,保存副本并将 maxNumComp 值从 10 更改为 8(我有 8 个预测变量)使其工作。还没有弄清楚为什么......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    相关资源
    最近更新 更多