[Matlab] libsvmmat 安装

注意

下载使用的是 libsvm-mat,而不是 libsvm 。

1:配置路径

将 libsvm-mat 工具箱所在路径添加到 matlab 的 Current Directory 中

File-->Set Path...-->Add with SubFolders...

clipboard[27]

I,如果没有将 libsvm-mat 添加到 matlab 的工作搜索目录,则调用函数时会报错: Undefined function or variable 'XXX'

II,

当前目录 [Current Dectory/Folder] 是指 matlab 当前所在的路径。

工作搜索目录(路径)是指使用一个函数时, matlab 可以进行搜索该函数的所有目录集合。

2:选择编译器

(libsvm 由 C++ 编写,所以需要编译器编译成类似 .m 文件【 .mexw32 文件】,才能在 matlab 环境下运行; matlab 自带的 Lcc-win32 C 是一个 C 编辑器,不能用)

执行命令 mem –setup

clipboard[29] 

是否让 mex 定位已安装的编译器,选择【n】

clipboard[34]

这个界面是各版本各种不一样,管它呢,能用就欧克了,选择【15】的 VC++6.0

clipboard[36]

确认本地安装的编译器是否是提示的路径,如果是,选择【y】即可;不是的话选择【n】,然后按照如下提示手动指定编译器路径

clipboard[38]

确认回车即可

clipboard[40]

【注意】编译器对应版本问题:

VC7 → VS2003

VC8 → VS2005

VC9 → VS2008

VC10 → VS2010

3:编译文件

执行命令 make

即运行 libsvm 目录下的 make.m 文件(在 Current Directory 中选中 make.m 右键选择运行也可以)

clipboard[42]

如果成功运行,没有报错,则说明 libsvm-mat 工具安装 successfull 了

4:验证

执行如下命令进行验证工具

load heart_scale.mat;

model=svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');

[predict_label, accuracy, dec_values]=svmpredict(heart_scale_label, heart_scale_inst, model);

clipboard[44]

5:错误集锦

I,C:\MATLAB7\BIN\WIN32\MEX.PL: Error: 'CFLAGS=\$CFLAGS -std=c99' not found.

错误原因:

1,用的是 libsvm,而不是 libsvm-mat;

2,编译器版本问题(网上提供,本人实验 VC6.0 也可以,这点仅供参考)

II,执行 make 命令报如下错误

Error: Could not find the compiler "cl" on the DOS path.

Use mex -setup to configure your environment properly.

E:\BIN\MEX.PL: Error: Unable to locate compiler.

错误原因:电脑里没有安装 VC++ 编译器,或者编译器路径指定错误

III,区分编译器(Compiler)和运行库

clipboard[46]

这些神马都是运行库,并不是编译器。

原文地址:https://www.cnblogs.com/memento/p/3077885.html