Matlab轉C/C++/Cmex文件加速運行方法

運行環境:

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. 轉換過程:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

3.轉換結果

在這裏插入圖片描述在這裏插入圖片描述

調用方法:

1.途徑一:

在這裏插入圖片描述

2. 途徑二:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章