運行環境:
Matlab 2017a
VS2017
Win10
C編譯器常用即可
Matlab轉換必要性
衆所周知Matlab中使用的語言編譯運行機制與Python一樣,被稱爲解釋型語言(也即先翻譯成中間代碼,再由解釋器對中間代碼進行解釋運行),相比於C/C++/Java/Cmex等編譯型語言(直接翻譯成機器語言)最大的特點就是“慢”!。
爲了加速Matlab仿真的運行,節省科研工作者的時間,常用的方式就是將Matlab所用語言轉換成C或者Cmex語言,能加速10倍或者更多,效率十分可觀!
轉換方法和調用途徑
將Matlab中的函數(需要注意只能對函數進行轉換,.m腳本文件不行)轉爲C/Cmex語言的示意圖如下所示。根據所轉換的語言可以分爲兩個途徑:
途徑一:
將經常編寫的Matlab中的函數(函數名爲:xx)轉換爲Cmex文件,得到的xx_mex.mexw64文件,使用方法爲直接在matlab的其他程序中(.m腳本或者其他函數中)調用xx_mex即可(就像C語言調用函數一樣),注意該xx_mex的輸入輸出也應指明,最終調用:output = xx_mex(input)
途徑二
將經常編寫的Matlab中的函數(函數名爲:xx)轉換爲C語言文件,包括xx.c和xx.h文件,其中的main.c文件就是程序入口,這種途徑的結果可以被直接引用到VS,Qt和CUDA中,方便嵌入式系統開發過程中matlab不開源函數的直接生成調用,能加速從matlab算法仿真到軟件工程實現的過程。
接下來將詳細記錄以上兩種途徑的生成和使用過程:
轉換過程:
1. 準備待被轉換的函數和測試函數轉換結果的測試文件:
2. 轉換過程: