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无法导出图形

在 Matlab 中运行脚本命令

libsvm 交叉验证与 matlab 中的预计算内核

如何在matlab中存储和检索多个决策树

matlab 2014a调用所有自定义函数时,都出现”未定义与 'double' 类型的输入参数相对应的函数 “,怎么做

Matlab 中的字符(char)和字符串(string)