最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2024年01月16日 10:06:00   作者:spic_jackmaster  
這篇文章給大家介紹了Qt調(diào)用MATLAB引擎混合編程的全過程,文中通過圖文結(jié)合的方式給大家介紹的非常詳細(xì),對大家的學(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è)備上運(yùn)行。

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

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

1、環(huán)境配置

Qt調(diào)用matlab引擎需要二者的軟件位數(shù)一致。本文實(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項(xiàng)目文件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項(xiàng)目中添加。

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

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

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

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

相關(guān)文章

  • C++ 算法精講之貪心算法

    C++ 算法精講之貪心算法

    貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當(dāng)前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解
    2022-03-03
  • C++ std::initializer_list 實(shí)現(xiàn)原理解析及遇到問題

    C++ std::initializer_list 實(shí)現(xiàn)原理解析及遇到問題

    這篇文章主要介紹了C++ std::initializer_list 實(shí)現(xiàn)原理勘誤,本文通過源碼解析給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • 淺談C++中char型變量的地址輸出

    淺談C++中char型變量的地址輸出

    下面小編就為大家?guī)硪黄獪\談C++中char 型變量的地址輸出。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在

    VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在

    這篇文章主要介紹了VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • 詳解C++何時需要拷貝構(gòu)造函數(shù)

    詳解C++何時需要拷貝構(gòu)造函數(shù)

    拷貝構(gòu)造函數(shù)是一個特殊的構(gòu)造函數(shù),用于創(chuàng)建一個新對象,該對象與另一個同類對象具有相同的屬性和值,在 C++ 中,拷貝構(gòu)造函數(shù)通常采用另一個同類對象作為參數(shù),并使用該對象初始化新對象,本文給大家講講何時需要拷貝函數(shù),需要的朋友可以參考下
    2023-09-09
  • 詳解C++ 桶排序(BucketSort)

    詳解C++ 桶排序(BucketSort)

    這篇文章主要介紹了C++桶排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C++獲取文件大小數(shù)值的三種方式介紹

    C++獲取文件大小數(shù)值的三種方式介紹

    最近在做項(xiàng)目時經(jīng)常需要獲得文件的大小操作,雖然在網(wǎng)絡(luò)上已經(jīng)有許多篇博客介紹了,但是還是想總結(jié)出自己一篇,記錄一下自己在項(xiàng)目中是怎么獲得文件大小的
    2022-10-10
  • C++中的類擴(kuò)展之繼承和組合詳解

    C++中的類擴(kuò)展之繼承和組合詳解

    在C++中,類擴(kuò)展可以通過繼承、組合和裝飾模式實(shí)現(xiàn)。繼承可以實(shí)現(xiàn)對已有類的修改和擴(kuò)展,組合可以增加新的功能,裝飾模式則能夠在不改變原類的情況下為其添加新的功能。這些技術(shù)在C++程序設(shè)計(jì)中應(yīng)用廣泛,提高了程序的可擴(kuò)展性和可維護(hù)性
    2023-04-04
  • C++在成員函數(shù)中使用STL的find_if函數(shù)實(shí)例

    C++在成員函數(shù)中使用STL的find_if函數(shù)實(shí)例

    這篇文章主要介紹了C++在成員函數(shù)中使用STL的find_if函數(shù)實(shí)例,包括了STL中find_if函數(shù)的具體用法及相關(guān)的完整實(shí)例,非常具有參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • C語言中free函數(shù)的使用詳解

    C語言中free函數(shù)的使用詳解

    free函數(shù)是釋放之前某一次malloc函數(shù)申請的空間,而且只是釋放空間,并不改變指針的值。下面我們就來詳細(xì)探討下
    2017-05-05

最新評論

通河县| 应城市| 南涧| 闽侯县| 黑水县| 楚雄市| 庆阳市| 淮滨县| 玛沁县| 定襄县| 渑池县| 玛曲县| 金坛市| 阳春市| 宜宾县| 靖远县| 张家界市| 漯河市| 腾冲县| 平山县| 岳西县| 象州县| 高要市| 雷山县| 中江县| 大田县| 太仆寺旗| 阳城县| 镇远县| 巩义市| 汉沽区| 壤塘县| 安图县| 沐川县| 邮箱| 聊城市| 平利县| 濮阳市| 开江县| 枞阳县| 池州市|