Mac上的Matlab编译添加Libsvm库

xiaoxiao2021-02-28  76

环境:Matlab R2016a & MacOX 10.12 & Xcode8 LIbsvm 3.22

本篇文章主要记录了如何在以上环境下编译使用libsvm,毕竟要在Mac上使用这个库,有些工作还是需要做的。

首先是需要给Mac上安装的Matlab打个补丁optsPatch10.8.patch,默认下载到Download文件 打开Matlab,命令行输入>>cd(matlabroot) 切换到Matlab根目录命令行接着输入>>!unzip -o ~/Downloads/optsPatch10.8.patch,将Download文件夹下的补丁解压缩到这个目录中 通常在这里可以在命令行输入>>mex -setup进行Matlab编译环境的设置了,但是很不幸,在以上这个环境下,会遇到: Error using mex No supported compiler or SDK was found. For options, visit http://www.mathworks.com/support/compilers/R2016a/maci64.html. 这个问题。编译所需要的SDK没有找到,因为我的电脑中已经装有Xcode8(注意,Xcode8里要装有Command line tool),也就是说我电脑中是具有编译的环境的,只是Matlab没有找到,所以接下来就是如何在Matlab里添加我们已有MacOX SDK的路径了进入/Applications/MATLAB_R2015b.app/bin/maci64/mexopts 文件夹,编辑clang++_maci64.xmlclang_maci64.xml,在这两个文件中,找到含有MacOSX10.10.sdk or MacOSX10.11.sdk字样的行,对应的两个标签分别是 dirExistscmdReturns,分别在这两个文件中下面复制对应的一样的行,将其中的MacOX 10.10 或 MacOX 10.11改为MacOX 10.12(打开应用程序,Xcode显示包内容,进入Contents/Developer/Platforms/MacOXplatform/Developer/SDKs 文件夹确认自己的SDK版本,我的是10.12),保存退出。这里是mathwork的官方论坛原帖解决方案。在Matlab命令行中输入>>mex -setup设置好编译环境,到这里编译环境的设置就完成了。下载libsvm并解压到Matlab中的toolbox文件夹中在Matlab中切换当前工作目录到toolbox文件夹中的Matlab文件夹,在命令行输入>>make,之后文件夹中就会出现4个.mexmaci64后缀的文件,到这里导入libsvm库的工作就算完成了。测试: 切换当前工作目录回libsvm下面,在Matlab命令行中输入>>[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');载入测试数据命令行输入>>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);出现分类的精度Accuracy = 86.6667% (234/270) (classification),就说明大功告成了~Enjoy yourself~

转载请注明原文地址: https://www.6miu.com/read-39483.html

最新回复(0)