日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt 调用MATLAB引擎混合编程

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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引擎混合编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。