亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Qt調(diào)用MATLAB引擎混合編程的過程詳解

 更新時間:2024年01月16日 10:06:00   作者:spic_jackmaster  
這篇文章給大家介紹了Qt調(diào)用MATLAB引擎混合編程的全過程,文中通過圖文結(jié)合的方式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下

0、前言

C/C++調(diào)用MATLAB有三個方式:調(diào)用dll文件、調(diào)用exe可執(zhí)行程序和調(diào)用Engin引擎。

第一種方式利用MATLAB Coder 將MATLAB代碼生成C/C++代碼和相關(guān)動態(tài)鏈接庫,可以在沒有MATLAB的電腦和設(shè)備上運行。

第二種方式利用MATLAB將MATLAB代碼編譯成exe可執(zhí)行文件,由C/C++調(diào)用exe從而實現(xiàn)混合調(diào)用,需要在執(zhí)行機上安裝MCR運行環(huán)境, MATLAB Component Runtime,MCR。

第三種方式直接調(diào)用MATLAB計算引擎,相當于進程調(diào)用,后臺開一個MATLAB應(yīng)用,通過C API傳參數(shù)和接收MATLAB的返回結(jié)果,需要安裝MATLAB。

1、環(huán)境配置

Qt調(diào)用matlab引擎需要二者的軟件位數(shù)一致。本文實現(xiàn)的環(huán)境如下:

  • 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??梢耘R時設(shè)置MinGW環(huán)境變量,但是關(guān)閉MATLAB后該變量就消失了,下次啟動MATLAB需要重新設(shè)置。

setenv('MW_MINGW64_LOC','D:\Tools\Qt_6.2.0_64Bit\Qt\Tools\mingw810_64')

可以通過設(shè)置系統(tǒng)環(huán)境變量,下次啟動MATLAB后不用再次設(shè)置。

設(shè)置MinGW環(huán)境變量之后,可以配置MATLABd C語言編譯器,此時選擇C++。

1.2 QT配置MATLAb Engine環(huán)境

Qt項目文件Pro添加依賴Engine的依賴,包括頭文件和庫(libgeng ligmat libmx ligmex等),比較簡單。

如果MATLAB的路徑中有空格,例如C:/Program Files之類的,需要用到 $$quote處理。

2、測試

以下示例展示Qt調(diào)用MATLAb引擎繪制一個sin函數(shù)。

如果編譯成功但是執(zhí)行崩潰,則可能是沒有找到相應(yīng)的MATLAB(添加一個matlab的bin下邊的win64目錄,例如:D:\Tools\matlab2018b\bin\win64),此時系統(tǒng)環(huán)境變量中添加或者在QT項目中添加。

QT中添加環(huán)境變量如下:

系統(tǒng)環(huán)境變量添加方法如下:

可能會出現(xiàn)執(zhí)行交慢的情況,已經(jīng)打開的MATLAB Command Window不要關(guān)閉,下次啟動就會更快一些。以上是簡單的引擎測試,數(shù)據(jù)傳遞和接收可以根據(jù)MATLAB官方文檔進行查詢。

以上就是Qt調(diào)用MATLAB引擎混合編程的過程詳解的詳細內(nèi)容,更多關(guān)于Qt調(diào)用MATLAB的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • c語言文件讀寫示例(c語言文件操作)

    c語言文件讀寫示例(c語言文件操作)

    這篇文章主要介紹了c語言文件讀寫示例(c語言文件操作),需要的朋友可以參考下
    2014-02-02
  • C++集體數(shù)據(jù)交換實現(xiàn)示例講解

    C++集體數(shù)據(jù)交換實現(xiàn)示例講解

    這篇文章主要介紹了C++集體數(shù)據(jù)交換實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • C++ namespace命名空間解析

    C++ namespace命名空間解析

    考慮一種情況,當我們有兩個同名的人,Zara,在同一個班里。當我們需要對它們進行區(qū)分我們必須使用一些額外的信息和它們的名字,比如它們生活在不同的區(qū)域或者興趣愛好什么的,在C++程序中也會遇到同樣的情況,所以命名空間就此產(chǎn)生
    2021-11-11
  • C++帶有指針成員的類處理方式詳解

    C++帶有指針成員的類處理方式詳解

    這篇文章主要為大家詳細介紹了C++帶有指針成員的類處理方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C語言鏈接屬性的實踐應(yīng)用

    C語言鏈接屬性的實踐應(yīng)用

    C語言中鏈接屬性決定如何處理在不同文件中出現(xiàn)的標示符,下面這篇文章主要給大家介紹了關(guān)于C語言鏈接屬性的實踐應(yīng)用,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • Qt物聯(lián)網(wǎng)管理平臺之實現(xiàn)數(shù)據(jù)查詢導(dǎo)出打印

    Qt物聯(lián)網(wǎng)管理平臺之實現(xiàn)數(shù)據(jù)查詢導(dǎo)出打印

    這篇文章主要為大家介紹了如何利用Qt編寫物聯(lián)網(wǎng)管理平臺中數(shù)據(jù)查詢導(dǎo)出打印的功能,文字的示例代碼講解詳細,感興趣的可以了解一下
    2022-07-07
  • C++中的Reactor原理與實現(xiàn)

    C++中的Reactor原理與實現(xiàn)

    reactor設(shè)計模式是event-driven?architecture的一種實現(xiàn)方式,處理多個客戶端并發(fā)的向服務(wù)端請求服務(wù)的場景,每種服務(wù)在服務(wù)端可能由多個方法組成,這篇文章主要介紹了Reactor原理與實現(xiàn),需要的朋友可以參考下
    2022-07-07
  • Qt簡單編程實現(xiàn)UDP通訊

    Qt簡單編程實現(xiàn)UDP通訊

    UDP數(shù)據(jù)報協(xié)議是一個面向無連接的傳輸層報文協(xié)議,它簡單易用,不存在?TCP協(xié)議“粘包”的問題,下面我們就來看看如何使用qt簡單實現(xiàn)UDP通訊吧
    2024-04-04
  • gdb調(diào)試命令的使用及總結(jié)

    gdb調(diào)試命令的使用及總結(jié)

    gdb是一個在UNIX環(huán)境下的命令行調(diào)試工具。如果需要使用gdb調(diào)試程序,請在gcc時加上-g選項。下面的命令部分是簡化版,比如使用l代替list等等
    2013-05-05
  • C++實現(xiàn)動態(tài)分配const對象實例

    C++實現(xiàn)動態(tài)分配const對象實例

    這篇文章主要介紹了C++實現(xiàn)動態(tài)分配const對象實例,包括了const對象的創(chuàng)建、刪除及應(yīng)用實例,需要的朋友可以參考下
    2014-10-10

最新評論