我正在尝试使用matlab目录中的Libsvmwrite.c文件将àCSV训练集转换为Libsvm格式。
在编译过程中,出现此错误:
bestmod@hadoopmaster:~/Downloads/libsvm-3.21/matlab$ gcc '/home/bestmod/Downloads/libsvm-3.21/matlab/libsvmwrite.c'/home/bestmod/Downloads/libsvm-3.21/matlab/libsvmwrite.c: In function ‘libsvmwrite’:/home/bestmod/Downloads/libsvm-3.21/matlab/libsvmwrite.c:29:2: error: unknown type name ‘mwIndex’ mwIndex *ir, *jc, k, low, high;
我检查了很好的代码,但是没有问题。

有人对这个问题有想法吗?
问候

最佳答案



这是我的情况:
我从UCI下载了数据集(训练和测试集),这是链接:
http://archive.ics.uci.edu/ml/machine-learning-databases/adult/
然后我将Adult.data和Adult.test的扩展名更改为CSV
然后,我使用了从Libsvm网页获得的libsvm软件包

此外,我使用libsvm软件包遵循了FAQ(如何将其他数据格式转换为Libsvm格式)的答案:
https://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f307

在解压缩的libsvm目录中:
在从matalb目录编译libsvmwrite.c的过程中,它需要三个h文件mex.h,matrix.h和tmwtypes.h,以解决遇到的其他一些编译问题。

之后,我得到了上面提到的问题。
在libsvmwrite.c中,定义了mwIndex时没有任何问题:

typedef int mwIndex;

就是这样,我希望我的解释清楚,感谢您的帮助。

10-06 10:16