Mac上的Matlab编译添加Libsvm库

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

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

  1. 首先是需要给Mac上安装的Matlab打个补丁optsPatch10.8.patch,默认下载到Download文件
    1. 打开Matlab,命令行输入>>cd(matlabroot) 切换到Matlab根目录
    2. 命令行接着输入>>!unzip -o ~/Downloads/optsPatch10.8.patch,将Download文件夹下的补丁解压缩到这个目录中
  2. 通常在这里可以在命令行输入>>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的路径了
  3. 进入/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的官方论坛原帖解决方案。
  4. 在Matlab命令行中输入>>mex -setup设置好编译环境,到这里编译环境的设置就完成了。
  5. 下载libsvm并解压到Matlab中的toolbox文件夹中
  6. 在Matlab中切换当前工作目录到toolbox文件夹中的Matlab文件夹,在命令行输入>>make,之后文件夹中就会出现4个.mexmaci64后缀的文件,到这里导入libsvm库的工作就算完成了。
  7. 测试:
    1. 切换当前工作目录回libsvm下面,在Matlab命令行中输入>>[heart_scale_label,heart_scale_inst]=libsvmread('heart_scale');载入测试数据
    2. 命令行输入>>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);
    3. 出现分类的精度Accuracy = 86.6667% (234/270) (classification),就说明大功告成了~Enjoy yourself~


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值