Mac OS环境下的libsvm在Matlab中安装

				版权声明:本文为博主原创文章,未经博主允许不得转载。					https://blog.csdn.net/u013515273/article/details/51276184				</div>
							            <div id="content_views" class="markdown_views">
						<!-- flowchart 箭头图标 勿删 -->
						<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
						<p>一个下午!!!终于在我的MacBook上装好了libsvm…… <br>

为了让大家少走弯路,一定要分享一下我的经验教训……

好啦~我们开始吧!

所需要的材料:Macbook、Xcode、Matlab2014R、libsvm-3.21optsPatch10.8.patchxcode7_mexopts
libsvm的原始版本使用C++写的,为了在matlab平台下使用,需要用C++编译器编译,生成类似于.m文件的.mexmaci64文件。这就是为什么我们要用到Xcode的原因了
Step1:首先在你的电脑上装上Xcode
Step2:观察下你的Xcode有没有Command Line Tool,最新版本的应该都是默认安装了的,没有的请自行百度安装啦。就是这个:
Command Line Tool
Step3:下载并安装补丁optsPatch10.8.patch
默认下载到Downloads文件夹下,不要动!
在Matlab中输入:

cd(matlabroot)
!unzip -o ~/Downloads/optsPatch10.8.patch
 
 
  • 1
  • 2

Step4:在Matlab中配置mex
在Matlab中创建一个编译C++的环境
输入:

mex -setup
 
 
  • 1

如果成功了就好了,如果不成功,请这样做:
Step4.1:xcode7_mexopts.zip,然后解压
Step4.2:在Matlab下,输入:

cd( prefdir );
//看一下当前文件夹下有没有"mex_"打头的文件,如"mex_C_maci64.xml",如果有的话,移除该文件
cd( fullfile( matlabroot, 'bin', 'maci64', 'mexopts' ) );
mkdir mexoptsContentsOLD
movefile *.xml mexoptsContentsOLD/
movefile( '~/Downloads/xcode7_mexopts/*.xml', '.' );
mex -setup
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

原网址:http://cn.mathworks.com/matlabcentral/answers/246507-why-can-t-mex-find-a-supported-compiler-in-matlab-r2015b-after-i-upgraded-to-xcode-7-0
这样应该就成功了。
Step5:接下来安装libsvm
先从libsvm官网上下载最新的libsvm,然后放到Matlab的toolbox文件夹下(Application->Matlab->显示包内容->找到toolbox->把libsvm放进去)
Step6:进入libsvm的matlab文件夹
在Matlab中输入:

cd(matlabroot)
cd toolbox/libsvm-3.21/matlab
 
 
  • 1
  • 2

Step7:运行make
在Matlab中输入

make
 
 
  • 1

该步骤就是将C++文件编译成matlab下可以运行的文件
看看文件夹下是不是有.mexmaci64文件生成啦
Step8:把libsvm加入到Matlab的工作路径下
这一步不能漏啊,否则出了libsvm-3.21这个文件夹就不能使用这些函数了呀,所以要把这些函数加入工作路径下,工作路径就是Matlab每次看到函数时都会去找其实现的地方呀。
在HOME标签页上点击Set Path;左侧点Add With Subfolders,把libsvm中matlab文件夹加进去,保存就好了。
set path
到此为止,改装的都装好了。
我们来测试一下!
转到libsvm-3.21文件夹下,会看到一个heart_scale文件,我们用这个文件来测试
path
在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); 
 
 
  • 1
  • 2
  • 3

如果结果出现:
Accuracy = 86.6667% (234/270) (classification)
则成功啦!

参考资料:
http://www.jianshu.com/p/e0275a380803
http://apinetree.blog.51cto.com/714152/1560254/
http://cn.mathworks.com/matlabcentral/answers/246507-why-can-t-mex-find-a-supported-compiler-in-matlab-r2015b-after-i-upgraded-to-xcode-7-0

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值