在 macOS 上的 Matlab 安裝 libsvm

最近需要利用 svm 來處理一些東西。用到了臺灣大學林智仁(Lin Chih-Jen)教授團隊開發(fā)設計 libsvm 軟件包。在把 libsvm 安裝到 Matlab 上的時候浪費了差不多一個小時。而且絕大多數(shù)網(wǎng)上給的教程在我這里都沒有什么卵用,所以就把這個安裝步驟記錄下來。

環(huán)境

  • 操作系統(tǒng):macOS sierra 10.12.2
  • Matlab 版本:R2015b
  • Xcode 版本:8.2.1 (8C1002)

步驟

1. Command Line Tool

如果你沒有安裝 Xcode,那么你最好還是安裝一個,在 App Store 上搜索安裝就行。(mac 上竟然不裝 Xcode?那你要 mac 何用?),如果你很久沒有更新 Xcode 了,建議你先更新一下,因為早期的 Xcode 沒有包含 Command Line Tool。總之你打開 Xcode 新建一個項目的時候,能看見下圖中紅色框中的 Command Line Tool 的圖標就行了。

Command Line Tool

據(jù)網(wǎng)上的一些文章說,如果你沒有安裝 Xcode,可以使用 xcode-select --install 這個命令來安裝,但我沒試過。

2. mex -setup

打開 Matlab,在命令行輸入mex -setup,此時會報錯。如果沒報錯的話,你就可以跳過這一步。

mex 命令出錯信息

這個錯誤說沒有找到支持的編譯器和 sdk,于是我們的解決方法就是讓 Matlab 找到這些東西。
打開文件夾 /Applications/MATLAB_R2015b.app/bin/maci64/mexopts ,找到下面這兩個文件:

  • clang++_maci64.xml
  • clang_maci64.xml

command + f 尋找字符串 MacOSX10.10.sdkMacOSX10.11.sdk,找到后把他們都改成 MacOSX10.12.sdk。每一個文件需要更改 4 處。
OK,改好后再在 Matlab 的命令行輸入mex -setup,如果出現(xiàn)類似于下面的信息,就說明可以了。如果還報錯,請參考 這篇文章 給 Matlab 打一個補丁。一般來說是不需要這個補丁的,反正我是沒有打。

mex 命令成功執(zhí)行信息

3. 編譯 libsvm

在 github 上把 libsvm 下載下來,進入 matlab 文件夾,打開 Makefile 文件,把 MATLABDIR 的值改成你自己的 MATLAB 的安裝位置,例如我的就改成:MATLABDIR ?= /Applications/MATLAB_R2015b.app
注意到這個 Makefile 文件里面第 4 和 第 5 行有一個注釋。說什么 for Mac MATLABDIR ?= /opt/local/matlab,不要理會它。

Makefile 文件

好了,把 MATLABDIR 更改好之后,打開命令行,輸入 make 命令。然后 balabala 輸出一堆 warning,但沒有 error。編譯完成后生成了幾個以 .mexmaci64 為后綴的文件,在 Matlab 的 set path 中把 這些 .mexmaci64 文件添加到路徑中就ok了。

4. 測試

在Matlab的命令行里輸入 libsvmread ,會出現(xiàn)Usage: [label_vector, instance_matrix] = libsvmread('filename'); 的提示,此時說明已經(jīng)能夠在 Matlab 里面使用 libsvm 了。

執(zhí)行 libsvmread 命令
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容