Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class Matlab:分类KNN类对象的矩阵_Class_Matlab_Object_Vector_Matrix - Fatal编程技术网

Class Matlab:分类KNN类对象的矩阵

Class Matlab:分类KNN类对象的矩阵,class,matlab,object,vector,matrix,Class,Matlab,Object,Vector,Matrix,对于分类,我正在MATLAB中为分类器构建许多模型。为此,我使用类ClassificationKNN。 我非常希望在一个矩阵中存储这个类的多个模型或对象。 通常,您可以使用大括号{}在矩阵中访问和创建矩阵。 我的循环如下所示: models = [] for i = 1:length(x) models = [models, {ClassificationKNN.fit(x,y)}] end 不幸的是,这将返回大小为1,3的矩阵模型,但所有单元格均为空,这意味着模型丢失。。。 如何确保

对于分类,我正在MATLAB中为分类器构建许多模型。为此,我使用类ClassificationKNN。 我非常希望在一个矩阵中存储这个类的多个模型或对象。 通常,您可以使用大括号{}在矩阵中访问和创建矩阵。 我的循环如下所示:

models = []
for i = 1:length(x)
    models = [models, {ClassificationKNN.fit(x,y)}]
end
不幸的是,这将返回大小为1,3的矩阵模型,但所有单元格均为空,这意味着模型丢失。。。 如何确保每个模型都存储在矩阵中?我需要这样做,因为我需要所有的模型在我以后的计算和在矩阵中的位置是重要的。。。
有什么想法吗?

你想要一组模型,对吗?看起来确实是这样的,如果可以的话,试试这个:

models = {}
for ii = 1:length(x)
    models = [models, {ClassificationKNN.fit(x,y)}]
end
此外,每次都使用相同的参数循环调用ClassificationKNN.fitx,y,这只是一个测试,还是一个示例的伪代码。正如评论所说,最好预先分配如下内容:

models = cell(length(x),1);
for ii = 1:length(x)
    models{ii} = ClassificationKNN.fit(x,y);
end

但是,无论哪种方式都可能是好的。

多亏了《麦克达夫邮报》,我终于弄明白了到底发生了什么。在阅读他的命题时,我意识到,如果要得到一个由物体组成的细胞阵列,这确实应该是正确的方法。 在尝试之后,在变量编辑器中打开数组时,数组再次看起来是空的。我尝试调用数组中的第一个单元格,查看它是否确实为空。它返回了我存储在其中的对象。这意味着问题得到了回答。 然后我又回到了我自己的方法,看看它是否也能起到同样的作用。调用单元格时,它还返回一个对象

底线:
不要相信变量编辑器^。

我已经有一段时间没有进行匹配了,所以可能是错误的,但是[a,{b}]语法让我很困扰。我可以晚一点用谷歌搜索,但我会先盯着它看。另外,如果你知道lengthx,总是预先分配你的矩阵,在一个循环中增长一个是非常缓慢的。是的,预先分配矩阵是个好主意。我会再调查一下的!我使用虚拟代码来进一步澄清我的问题,在真实代码中,我每次都使用不同的参数。