我正在尝试将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'.
“标签”和“features_sparse”都不是字符......(它们是双打的)。我的错误在哪里?谢谢!
答案 0 :(得分:2)
libsvmwrite
的第一个参数是char类型(文件名' SPECTFlibsvm.train')。我认为问题出在Matlab给出的错误信息上。错误消息表明函数对于char类型的输入不存在,但很可能应该是它根本不存在(如果Matlab被设计为OPP语言,则该消息可能有意义)。
无论如何,你根本没有路径中的libsvmwrite
功能,或者你以某种方式搞砸了libsvm接口的安装。
答案 1 :(得分:0)
可能你只加载了用c编写的源代码。你需要编译它。转到libsvm的matlab
目录并阅读说明。