本篇文章是讲如何在Mac电脑上安装MatLab,以及一个工具LIBSVM.
一、环境:
1. OS X 10.9.2
2. MatLab 2013a
下载地址(种子文件)
http://ifunapple.com/2013/10/matlab/
3. LIBSVM V 3.17
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
4. Xcode 5.1
二、安装
1. MatLab 2013a 安装方法,请参见上述种子文件里的Readme.
我安装的时候选择的"无Internet安装",最后导入Lisence文件。
2. Xcode 5.1安装方法
可以通过升级Xcode,或者在AppStore里下载安装。
3. LIBSVM 安装方法
这是花了最多时间的地方。
首先,安装Xcode command line工具。
我在找到一个网站,可以直接下载command line tools,然后直接安装的。
然后,编译LIBSVM。
a. 打开MatLab
b. 在MatLab命令框输入:
mex -setup
选择mex编译器
Template Options file for building MEX-files
c. 在MatLab命令框输入:
mbuild -setup
Build and link with MATLAB Compiler generated library via the system ANSI C/C++ compiler
d. 进行LIBSVM/matlab路径,在MatLab命令框输入:
make
当你看到产生了一些mexmaci64后缀的文件,说明编译成功了。
三、常见问题:
1. 编译LIBSVM的问题。
如果在make的时候出现下面提示(见参考文章3)
In file included from /Applications/MATLAB_R2013a.app/extern/include/matrix.h:294:
/Applications/MATLAB_R2013a.app/extern/include/tmwtypes.h:819:9: error: unknown type name 'char16_t'
typedef char16_t CHAR16_T;
把tmwtypes.h文件里面的
typedef char16_t CHAR16_T;
改为:
typedef char16_t CHAR16_T;
2. 编译LIBSVM的问题。
如果你用的是低版本的Xcode或者MatLab,就需要看一下MatLab的帮助帖子(见参考文章4)。
3. MatLab中文乱码问题(见参考文章5)。
修改/Applications/MATLAB_R2013a.app/bin/lcdata.xml文件,找到
<locale name="en_US_POSIX"将后面的改为:
<locale name="en_US_POSIX" encoding="GB18030" xpg_name="GB18030">
在MabLab命令框,输入:
feature('locale')
输出以下内容即成功了。
ans = ctype: 'en_US_POSIX.GB18030' collate: 'en_US_POSIX.GB18030' time: 'en_US_POSIX.GB18030' numeric: 'en_US_POSIX.GB18030' monetary: 'en_US_POSIX.GB18030' messages: 'en_US.GB18030' encoding: 'GB18030'
四、参考文章:
1. matlab xcode 与 libsvm 的设置方法
http://bbs.weiphone.com/read-htm-tid-5787323.html
2. Xcode Command Line Tools for Mac OS X 10.9 Mavericks
http://railsapps.github.io/xcode-command-line-tools.html
3. Matlab MEX compile error
http://stackoverflow.com/questions/22367516/matlab-mex-compile-error
4. Can I use Xcode 4.2 to 4.6 as my C or C++ compiler in MATLAB? (Updated: 2013/02/04)
http://www.mathworks.com/matlabcentral/answers/94092
5. MATLAB for Mac使编辑器支持中文
http://my.oschina.net/u/1051634/blog/208025