>> reported_3 错误使用 nnfcnInfo/parameterStructure (line 107) Not scalar. 出错 dividerand (line 60) params = INFO.parameterStructure(varargin); 出错 reported_3 (line 7) [train_x,train_y,test_x,test_y] = dividerand(x',y',0.8,0.2);
时间: 2024-02-04 13:02:45 浏览: 87
报如下错误
根据报错信息,`nnfcnInfo/parameterStructure` 函数在使用时出现了问题,该函数需要输入一个标量,但传入的参数不是标量。这个错误是由于 `dividerand` 函数的参数位置不正确造成的。
在 MATLAB 中,`dividerand` 函数的参数应该按照以下顺序传入:
```matlab
[trainInd,valInd,testInd] = dividerand(Q,ratioTrain,ratioValidation,ratioTest)
```
其中,`Q` 是输入的数据集,`ratioTrain`、`ratioValidation` 和 `ratioTest` 分别是训练集、验证集和测试集的比例,三者之和应该为 `1`。
在您的代码中,`x'` 和 `y'` 包含在第一个参数中,而 `0.8` 和 `0.2` 被错误地传递到了第三和第四个参数中。因此,正确的代码应该是:
```matlab
[train_x,train_y,test_x,test_y] = dividerand([x', y'], 0.8, 0, 0.2);
```
其中,`[x', y']` 将 `x` 和 `y` 拼接在一起,使它们成为同一个输入参数。`0` 代表验证集的比例,因此在这里省略。
阅读全文