亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

C語(yǔ)言

C++如何調(diào)用matlab函數(shù)

時(shí)間:2025-04-07 21:03:28 賽賽 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C++如何調(diào)用matlab函數(shù)

  C++是C語(yǔ)言的繼承,它既可以進(jìn)行C語(yǔ)言的過(guò)程化程序設(shè)計(jì),又可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。C++如何調(diào)用matlab函數(shù)?下面就一起來(lái)了解看看吧!

  C++如何調(diào)用matlab函數(shù)

  本來(lái)電腦上安裝的是matlab2012b,但是好像2012b只有64位的,故重新安裝matlab7,安裝完注冊(cè)一下,cmd cd到matlab7的程序目錄bin文件夾下,注冊(cè) matlab /regserver,就可以調(diào)用matlab了,先測(cè)試第一種方法,調(diào)用引擎,engOpen、engSetVisible、engClose

  engEvalString(m_pEngine, "x1 = 0.01 : 0.01 : 10 * pi");engEvalString(m_pEngine, "x2 = -10 * pi : 0.01 : -0.01");engEvalString(m_pEngine, "y1 = sin(x1)./x1");

  engEvalString(m_pEngine, "y2 = sin(x2)./x2");

  engEvalString(m_pEngine, "plot([x2 x1], [y2 y1])");

  在臺(tái)式機(jī)上可以運(yùn)行,但是到了筆記本上engOpen返回false,經(jīng)過(guò)研究發(fā)現(xiàn)有可能是管理員權(quán)限的問(wèn)題,

  項(xiàng)目右鍵-屬性-鏈接器-清單文件-uac執(zhí)行級(jí)別選擇requireAdministrator,重新編譯運(yùn)行果然正確了,先記錄下來(lái)。

  C/C++調(diào)用Matlab

  在工程實(shí)踐中,C/C++調(diào)用Matlab 的方法主要有調(diào)用Matlab 計(jì)算引擎、包含m 文件轉(zhuǎn)換的C/C++文件,以及調(diào)用m文件生成的DLL 文件。

  在調(diào)用Mallab方法、代碼或DLL之前,先設(shè)置matlab的編譯器。

 。1)在命令行窗口下,輸入并執(zhí)行如下命令:mex –setup

 。2)輸入命令:mbuild –setup ,選擇相應(yīng)的VS編譯器。

  1 利用Matlab計(jì)算引擎

  Matlab的引擎庫(kù)為用戶提供了一些接口函數(shù),利用這些接口函數(shù),用戶在自己的程序中以計(jì)算引擎方式調(diào)用Matlab 文件。該方法采用客戶機(jī)/服務(wù)器的方式,利用Matlab 引擎 將Matlab 和C/C++聯(lián)系起來(lái)。在實(shí)際應(yīng)用中,C/C++程序?yàn)榭蛻魴C(jī),Matlab 作為本地服務(wù)器。

  C/C++程序向Matlab 計(jì)算引擎?zhèn)鬟f命令和數(shù)據(jù)信息,并從Matlab 計(jì)算引擎接收數(shù)據(jù)信息。

  Matlab提供了以下幾個(gè)C語(yǔ)言計(jì)算引擎訪問(wèn)函數(shù)供用戶使用:engOpen,engClose,engGetVariable,engPutVariable,engEvalString,engOutputBuffer,engOpenSingleUse, engGetVisible,engSetVisible。

  頭文件#include "engine.h"這個(gè)文件在 %MATLAB_PATH%externinclude里,我們?cè)赩C++目錄包含過(guò)了。否則,就會(huì)提示 cannot find engine.h file之類的錯(cuò)誤。然后,我們需要引用幾個(gè)函數(shù)調(diào)用依賴庫(kù)(lib) libeng.lib libmx.lib libmat.lib。

  在Matlab 下運(yùn)行example2.exe: mex -f example2.c。

  利用計(jì)算引擎調(diào)用Matlab的特點(diǎn)是:節(jié)省大量的系統(tǒng)資源,應(yīng)用程序整體性能較好,但不能脫離Matlab的環(huán)境運(yùn)行,且運(yùn)行速度較慢,但在一些特別的應(yīng)用時(shí)可考慮使用。

  2 利用mcc編譯器生成的cpp 和hpp 文件

  Matlab自帶的C++ Complier--mcc,能將m文件轉(zhuǎn)換為C/C++代碼。因此,它為C/C++程序調(diào)用m文件提供了另一種便捷的方法。下面舉例說(shuō)明相應(yīng)步驟:

  a.新建example3.m,保存后在命令窗口中輸入:mcc -t -L Cpp -hexample3.

  則在工作目錄下生成example3.cpp 和example3.hpp 兩個(gè)文件。

  b.在VC中新建一個(gè)基于對(duì)話框的MFC應(yīng)用程序Test2,添加一個(gè)按鈕,并添加按鈕響應(yīng)函數(shù),函數(shù)內(nèi)容見(jiàn)f 步。將上面生成的兩個(gè)文件拷貝到VC 工程的Test2 目錄下。

  c.在VC中選擇:工程->設(shè)置,選擇屬性表Link 選項(xiàng),下拉菜單中選擇Input,在對(duì)象 / 庫(kù)模塊中加入libmmfile.liblibmatlb.lib libmx.lib libmat.lib libmatpm.lib sgl.lib libmwsglm.liblibmwservices.lib , 注意用空格分開(kāi); 而在忽略庫(kù)中加入 msvcrt.lib;

  d.選擇屬性表C/C++選項(xiàng),下拉菜單選General,在預(yù)處理程序定義中保留原來(lái)有的內(nèi)容,并添加MSVC,IBMPC,MSWIND,并用逗號(hào)隔開(kāi)。選擇下拉菜單的PrecompiledHeaders選項(xiàng),在“自動(dòng)使用預(yù)補(bǔ)償頁(yè)眉”中添加stdafx.h,然后確定。

  e.選擇:工具-> 選項(xiàng), 屬性頁(yè)選擇“ 目錄” ,在include files 加入:C:MATLAB6p5p1externinclude ,C:MATLAB6p5p1externincludecpp ; 然后在 Library files 里面加入: C:MATLAB6p5p1inwin32 ,C:MATLAB6p5p1extern libwin32microsoftmsvc60;注意根據(jù)用戶的Matlab 安裝位置,修改相應(yīng)目錄。

【C++如何調(diào)用matlab函數(shù)】相關(guān)文章:

Java程序如何調(diào)用C/C++語(yǔ)言函數(shù)03-25

C/C++函數(shù)調(diào)用的方式07-29

C++調(diào)用C函數(shù)的方法05-21

C/C++函數(shù)調(diào)用的方式有哪些06-23

Java程序調(diào)用C/C++語(yǔ)言函數(shù)的方法07-31

如何在C/C++中調(diào)用Java03-13

匯編調(diào)用C函數(shù)02-02

java調(diào)用c函數(shù)的實(shí)例04-25

C語(yǔ)言函數(shù)的運(yùn)用及調(diào)用05-10