MATLAB:“char”类型的输入参数的未定义函数“libsvmwrite”
Posted
技术标签:
【中文标题】MATLAB:“char”类型的输入参数的未定义函数“libsvmwrite”【英文标题】:MATLAB: Undefined function 'libsvmwrite' for input arguments of type 'char' 【发布时间】:2013-12-29 12:32:51 【问题描述】:我正在尝试将 CSV 文件转换为 LIBSVM/SVMlight 格式。我找到了以下代码:
SPECTF = csvread('SPECTF.train'); % read a csv file
labels = SPECTF(:, 1); % labels from the 1st column
features = SPECTF(:, 2:end);
features_sparse = sparse(features); % features must be in a sparse matrix
libsvmwrite('SPECTFlibsvm.train', labels, features_sparse);
我在特定文件的 Octave 上使用了它,它工作正常。 但是,在 MATLAB 上尝试时,我收到了错误:
Undefined function 'libsvmwrite' for input arguments of type 'char'.
“labels”和“features_sparse”都不是字符...(它们是双精度数)。我的错误在哪里?谢谢!
【问题讨论】:
【参考方案1】:libsvmwrite
的第一个参数是 char 类型(文件名“SPECTFlibsvm.train”)。我认为问题出在 Matlab 给出的错误信息上。错误消息表明该函数不存在用于 char 类型的输入,但很可能它根本不存在(如果 Matlab 被设计为 OPP 语言,该消息可能有意义)。
无论如何,您的路径中根本没有libsvmwrite
函数,或者您以某种方式弄乱了libsvm接口的安装。
【讨论】:
谢谢@carandraug,你是对的:我不小心使用了在 Windows XP 操作系统上创建的 'libsvmwrite' 的 .mex 文件,同时在 Windows 7 操作系统上运行它...... ;) 【参考方案2】:您可能只加载了用 c 编写的源代码。你需要编译它。进入libsvm的matlab
目录,阅读说明。
【讨论】:
以上是关于MATLAB:“char”类型的输入参数的未定义函数“libsvmwrite”的主要内容,如果未能解决你的问题,请参考以下文章
matlab 2014a调用所有自定义函数时,都出现”未定义与 'double' 类型的输入参数相对应的函数 “,怎么做