0

假设我有 2 个文件。一个用于训练和测试,另一个是函数。在 trainingAndTesting.m 文件中,当我运行它时,它显示错误:

Undefined variable "featuresIdiap" or class "featuresIdiap.trainGenuine"

但是在“featuresIdiap.m”文件中,函数“featuresIdiap”在那里,“trainGenuine”也在这个文件中。仍然显示未定义的错误。

在 trainingAndTesting.m 文件中显示错误:

Idiap_TrainData = [featuresIdiap.trainGenuine; featuresIdiap.trainReplay; ];

在 featuresIdiap.m 文件中: 第一行显示它具有功能“featuresIdiap”。

这是代码:

function featuresIdiap = featuresIdiap(iterCntIdiaptrain, iterCntIdiaptest, varargin )

然后是写“trainGenuine”的代码:

trainGenuine = zeros( 60*numFrames, numTotalFeatures );

另一行包含:

featuresIdiap.trainGenuine = trainGenuine;

如果我像这样更改 trainingAndTesting.m 文件:

featuresIdiap = feature_Idiap([],[]); Idiap_TrainData = featuresIdiap.trainGenuine;

然后它显示以下错误:

未定义的函数或变量“getmapping”

4

1 回答 1

0

所以这就是我理解你所拥有的:

文件feature_Idiap.m

function featuresIdiap = feature_Idiap(iterCntIdiaptrain, iterCntIdiaptest, varargin)
featuresIdiap.trainGenuine = zeros( 60*numFrames, numTotalFeatures );

文件trainingAndTesting.m

Idiap_TrainData = featuresIdiap.trainGenuine;

此处的此示例包含重现您的问题所需的所有内容。我已经从文件中删除了所有其他内容。这就是所谓的最小、完整和可验证示例(MCVE),帮助中心对这个过程有很好的描述,下次请按照它。如果你从一开始就发布了这个,你会在 5 分钟内得到答案,因为每个关注标签的人都会马上意识到问题!而且,老实说,您可能自己也发现了这个问题。

当您运行时trainingAndTesting,该函数feature_Idiap永远不会被调用。您立即尝试使用它的输出参数。如果我像这样修改 MCVE 示例:

featuresIdiap = feature_Idiap([],[]);
Idiap_TrainData = featuresIdiap.trainGenuine;

然后错误消失。

于 2018-04-19T15:50:27.777 回答