假设我有2个文件。一个用于火车和测试,另一个用于功能。在trainingAndTesting.m文件中,当我运行它时,它显示错误:
Undefined variable "featuresIdiap" or class "featuresIdiap.trainGenuine"
但是在" featuresIdiap.m"文件,功能" featuresIdiap"在那里和#34; 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;
然后它显示以下错误:
答案 0 :(得分:0)
所以这就是我所知道的:
档案feature_Idiap.m
:
function featuresIdiap = feature_Idiap(iterCntIdiaptrain, iterCntIdiaptest, varargin)
featuresIdiap.trainGenuine = zeros( 60*numFrames, numTotalFeatures );
档案trainingAndTesting.m
:
Idiap_TrainData = featuresIdiap.trainGenuine;
此示例包含重现问题所需的所有内容。我已从文件中删除了其他所有内容。这就是所谓的最小,完整且可验证的示例(MCVE),帮助中心有一个非常好的description of this process,下次请关注它。如果您从一开始就发布了这个,那么您将在5分钟内得到答案,因为跟随matlab标记的每个人都会立即发现问题!老实说,你自己也可能已经发现了这个问题。
运行trainingAndTesting
时,永远不会调用函数feature_Idiap
。您立即尝试使用其输出参数。如果我像这样修改MCVE示例:
featuresIdiap = feature_Idiap([],[]);
Idiap_TrainData = featuresIdiap.trainGenuine;
然后错误就消失了。