Matlab 聚类工具箱

Matlab clustering toolbox

我刚刚下载并安装了 matlab 聚类工具箱 (http://www.mathworks.com/matlabcentral/fileexchange/7486-clustering-toolbox) 但是,当我 运行 第一个演示文件(摩托车聚类示例)时,出现以下错误。

Undefined function 'isnan' for input arguments of type 'struct'.

Error in internal.stats.removenan (line 54) wasnan = wasnan | any(isnan(y),2);

Error in statremovenan (line 7) [badin,wasnan,varargout{1:nargout-2}] = internal.stats.removenan(varargin{:});

Error in kmeans (line 141) [~,wasnan,X] = statremovenan(X);

Error in Kmeanscall (line 21) result=kmeans(data,param);

有人用过这个工具箱吗?如果是这样,我该如何处理这个问题?

问题与名称冲突有关。聚类工具箱有一个 Kmeans 函数。但是,MATLAB 统计工具箱有自己的 kmeans 功能。可能只是聚类工具箱目录在您的路径中低于 MATLAB 内置目录。因此,首先要做的是确保聚类工具箱目录位于路径的顶部,或者至少高于内置 MATLAB 目录。

如果这不起作用,您可能 运行 遇到了 MATLAB 中主要的向后兼容性中断的问题。在编写该工具箱时,MATLAB 名称不区分大小写,因此 Kmeanskmeans 被认为是同一件事。因此,如果您将集群工具箱放在路径的顶部,那么它的版本将是首选。

然而,从那时起,MATLAB 已更改为区分大小写(某种程度上,在某些情况下,取决于平台)。这意味着,在您的情况下,它更喜欢内置 kmeans 函数而不是工具箱提供的 Kmeans 函数。这些功能不同,导致demo无法运行

因此,如果路径更改没有解决问题,您需要做的是检查工具箱中的所有代码(包括函数和演示)并确保所有函数都使用了正确的大小写。