0

使用后:

nb = NaiveBayes.fit(training, class)

要创建一个朴素贝叶斯分类器对象,我想将这些对象的 N-by-D 保存在一个矩阵中。我试图做以下事情

ARRAYOFNAIVEBAYES(2,3) = nb;

但我得到:“使用 NaiveBayes/subsasgn 时出错(第 9 行)NaiveBayes 类不支持下标分配。”

如何在 MATLAB 中填充朴素贝叶斯分类器矩阵?

请注意,使用 fitNaiveBayes 或 fitcnb 会导致相同的问题,因为它们都返回相同类型的对象。

谢谢

4

1 回答 1

0

尝试使用元胞数组。

首先,初始化元胞数组。如果您现在要存储元素的数量,例如Nx D,请使用

ARRAYOFNAIVEBAYES = cell(N,D);

如果您事先不知道大小,您可以简单地从一个空元胞数组开始:

ARRAYOFNAIVEBAYES = {};

然后,如果稍后您生成了分类器对象nb并且想要将其存储在索引 (2, 3) 下,请使用

ARRAYOFNAIVEBAYES{2,3} = nb;

要稍后访问该值,请使用相同的语法ARRAYOFNAIVEBAYES{2,3}

有关详细信息,请参阅 Matlab 的元胞数组文档。

于 2015-03-30T19:18:41.720 回答