- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
libSVM安装过程及错误提示
libSVM是用C++语言编写而成的,它提供了和其它软件诸如Matlab的接口,所以如果想要在Matlab中使用,首先要在Matlab中对C文件进行混合编译,把C文件转换为Matlab可以执行的.dll文件。
Matlab程序是一种解释执行程序,不用编译等预处理,程序运行速度较慢。C/C++语言是高级程序设计语言之一,它可对操作系统和应用程序以及硬件进行直接操作,用C/C++语言明显优于其它解释型高级语言,一些大型应用软件如 Matlab 就是用C语言开发的。通过把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度。Matlab调用C/C++的方式主要有两种:利用MEX技术和调用C/C++动态连接库。libSVM在Matlab中的安装采用的是第一种方式。
在Matlab与C/C++混合编程之前,必须先对Matlab的编译应用程序mex和编译器mbuild进行正确的设置:
系统XP,Matlab版本2013a,C编译器为VS2010.
1. 下载libSVM
下载链接:D:\Program Files\matlab 2013a\toolbox\libsvm-3.18\matlab
下载好保存到合适的路径,推荐Matlab安装目录下的toolbox中
2. 解压文件
3. 将libSVM所在的文件夹加入Matlab的搜索路径,在菜单栏的Set Path中可以设置。Matlab执行程序时,如果在当前路径下没有找到所需的文件,会在搜索路径中继续寻找,所以要确保要使用的文件至少在搜索路径中。如果Matlab提示找不到文件,而文件又真是存在,很可能的原因是忘记将文件所在目录添加到Matlab的搜索路径下了。
4. 设置mex,这里要先将Matlab的当前目录切换到libsvm安装目录下的matlab子文件夹上。这一步在mex的设置时并不是必须的,而是在后面的步骤时必须的,但是为了防止后面忘记,所以这里设置完搜索路径顺便设置当前目录。
另外,现在的libsvm文件夹libsvm-3.12\windows中已经有编译好的程序,可以直接使用,只需要把libsvm-3.12\windows添加到matlab路径中即可,不需要编译的过程。但最好还是自己编译一遍,因为编译环境不同会导致一些不可预估的小问题,自己编译的过程是可控的。
在命令窗口输入mex –setup,注意mex后面有一个空格,也就是正确输入后setup的颜色会变,如果没有输入空格,setup颜色为黑色而且运行命令会有错误提示。
运行后出现下图的提示,是否选择Matlab自带的编译器,选择n。matlab自带了C编译器Lcc-win32C,但是libsvm原始版本是C++实现的,因此需要C++的编译器来编译,这就是不用matlab默认编译器而选择其他C++编译器的原因。
接下来会让选择使用哪种编译器,选择自己电脑上所带有的,这里使用的VS2010,第21号编译器。
是否确定这个编译器,核对位置后确定:
再次确定后出现编译完成的界面:
5. 用make.m编译。可以看到make文件就在libsvm中的matlab子文件夹里,这里直接输入函数名称,Matlab会首先在当前目录下搜索函数,如果当前目录没有,则会再在搜索路径中寻找,为了提高搜索速度,也为了防止其它同名文件的干扰,这里直接将我们所需的make文件所在的直接目录设为当前目录。
在命令窗口输入:make
6. 编译完成,系统会生成svmtrain.mexw32,svmpredict.mexw32,libsvmread.mexw32和libsvmwrite.mexw32等文件,现在就可以调用 libsvm的函数了。
7. 为了检验是否安装好,可用libsvm自带的测试数据进行测试。
首先读入测试数据,如果你有.mat后缀的Matlab数据集,把它拷贝到当前路径中可以直接用load读入即可。而libsvm中现在自带的heart_scale数据集是C++版本的(类标签 1:第一个属性 2:第二个属性…),不能直接load,需要用libsvmread来转换为matlab版本的(它们的区别在类标签)。下图是libsvm提供的heart_scale数据集,注意它的存放路径。
使用命令[label_vector, instance_matrix] = libsvmread(‘C++版本数据集’);来转换数据类型,出现下图error:
这里错误的原因是因为,当只给出文件名时,程序默认只在当前路径下寻找,而这里数据集并不在当前目录matlab子文件夹下,所以有两种解决办法,一种是将数据拷贝到当前目录中,依然使用这条命令;另一种方法是将路径明确化,不要只给出一个文件名,给出文件存
您可能关注的文档
最近下载
- (100分)中国石油大学2022秋《红楼梦研究第二阶段在线作业.doc VIP
- 第7节货场平面布置及配置图.PDF VIP
- 8.1功与功率 (教学课件)-高中物理人教版(2019)必修第二册 .pptx VIP
- 海浦蒙特MTCC-V2A经典系列别墅电梯控制柜用户手册-中-V1.0.pdf VIP
- 塔里木油田超深气井产出剖面解释方法研究.pdf
- 2025年上海市青少年活动中心(上海市青年发展服务中心)工作人员公开招聘(第二批)笔试备考题库及答案解析.docx VIP
- 2025北京市公安局公共交通安全保卫总队勤务辅警招聘70人笔试备考试题及答案解析.docx VIP
- BRCGS 包装材料(第七版)文件清单.xlsx VIP
- 生物多样性保护与监测.pdf VIP
- 《探寻非遗漆扇之美》课件.pptx VIP
文档评论(0)