Qt 调用MATLAB引擎混合编程
0、前言
C/C++調用MATLAB有三個方式:調用dll文件、調用exe可執行程序和調用Engin引擎。
第一種方式利用MATLAB Coder 將MATLAB代碼生成C/C++代碼和相關動態鏈接庫,可以在沒有MATLAB的電腦和設備上運行。
第二種方式利用MATLAB將MATLAB代碼編譯成exe可執行文件,由C/C++調用exe從而實現混合調用,需要在執行機上安裝MCR運行環境,?MATLAB?Component?Runtime,MCR。
第三種方式直接調用MATLAB計算引擎,相當于進程調用,后臺開一個MATLAB應用,通過C API傳參數和接收MATLAB的返回結果,需要安裝MATLAB。
1、環境配置
Qt調用matlab引擎需要二者的軟件位數一致。本文實現的環境如下:
- Qt 6.2.1 64bit
- matlab 2018b 64bit
- MinGW64 版本mingw810_64
??
1.1 MATLAB配置C編譯器
配置MATLAB的C編譯器與Qt的C編譯器為同一個MinGW,如果沒有MinGW則需要去下載。由于安裝Qt過程中選擇了MinGW,因此,MATLAB直接配置該MinGW。可以臨時設置MinGW環境變量,但是關閉MATLAB后該變量就消失了,下次啟動MATLAB需要重新設置。
setenv('MW_MINGW64_LOC','D:\Tools\Qt_6.2.0_64Bit\Qt\Tools\mingw810_64')可以通過設置系統環境變量,下次啟動MATLAB后不用再次設置。
設置MinGW環境變量之后,可以配置MATLABd C語言編譯器,此時選擇C++。
?1.2?QT配置MATLAb Engine環境
Qt項目文件Pro添加依賴Engine的依賴,包括頭文件和庫(libgeng ligmat libmx ligmex等),比較簡單。
如果MATLAB的路徑中有空格,例如C:/Program Files之類的,需要用到?$$quote處理。
2、測試
以下示例展示Qt調用MATLAb引擎繪制一個sin函數。
如果編譯成功但是執行崩潰,則可能是沒有找到相應的MATLAB(添加一個matlab的bin下邊的win64目錄,例如:D:\Tools\matlab2018b\bin\win64),此時系統環境變量中添加或者在QT項目中添加。
QT中添加環境變量如下:
系統環境變量添加方法如下:
?
?
可能會出現執行交慢的情況,已經打開的MATLAB Command Window不要關閉,下次啟動就會更快一些。以上是簡單的引擎測試,數據傳遞和接收可以根據MATLAB官方文檔進行查詢。用于 C 的 MATLAB 引擎 API- MATLAB & Simulink- MathWorks 中國
?以下無。
總結
以上是生活随笔為你收集整理的Qt 调用MATLAB引擎混合编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高考填报志愿计算机操作技巧,高考志愿填报
- 下一篇: 功能强大的相片管理软件ACDSee Ph