我刚刚下载并安装了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);
有没有人使用过这个工具箱?如果是这样,我该如何处理这个问题?
答案 0 :(得分:3)
问题与名称冲突有关。群集工具箱具有Kmeans
功能。但是,MATLAB统计工具箱有自己的kmeans
函数。可能只是聚类工具箱目录在路径中比MATLAB内置的低。因此,首先要确保集群工具箱目录位于路径的顶部,或者至少高于内置的MATLAB目录。
如果这不起作用,您可能遇到了MATLAB中主要向后兼容性中断的问题。回到编写该工具箱时,MATLAB名称不区分大小写,因此Kmeans
和kmeans
被认为是相同的。因此,如果您将聚类工具箱放在路径的顶部,则首选其版本。
然而,从那时起,MATLAB已经变为区分大小写(在某些情况下,取决于平台)。这意味着,在您的情况下,它更喜欢内置kmeans
函数而不是工具箱提供的Kmeans
函数。这些功能不同,导致演示无法正常工作。
因此,如果路径更改无法解决问题,那么您需要做的就是浏览工具箱中的所有代码(包括函数和演示),并确保所有函数都使用正确的大小写。