使用后:
nb = NaiveBayes.fit(training, class)
创建一个Naive Bayes分类器对象后,我想将这些对象以N-by-D的形式存储在一个矩阵中。我尝试了以下操作
ARRAYOFNAIVEBAYES(2,3) = nb;
但我得到了错误:“错误使用 NaiveBayes/subsasgn (第9行)NaiveBayes类不支持下标赋值。”
如何在MATLAB中填充一个Naive Bayes分类器矩阵呢?
请注意,使用fitNaiveBayes或fitcnb会导致相同的问题,因为它们返回的对象类型相同。
谢谢
回答:
尝试使用单元数组。
首先,初始化单元数组。如果你知道要存储的元素数量,例如N
x D
,使用
ARRAYOFNAIVEBAYES = cell(N,D);
如果你事先不知道大小,可以简单地从一个空的单元数组开始:
ARRAYOFNAIVEBAYES = {};
然后,如果你后来生成了分类器对象nb
,并且想将其存储在索引(2, 3)下,使用
ARRAYOFNAIVEBAYES{2,3} = nb;
稍后要访问该值,使用相同的语法ARRAYOFNAIVEBAYES{2,3}
。
更多信息,请参阅MATLAB的单元数组文档。