<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C++如何調用matlab函數

    時間:2025-04-07 21:03:28 賽賽 C語言 我要投稿
    • 相關推薦

    C++如何調用matlab函數

      C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基于對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++如何調用matlab函數?下面就一起來了解看看吧!

      C++如何調用matlab函數

      本來電腦上安裝的是matlab2012b,但是好像2012b只有64位的,故重新安裝matlab7,安裝完注冊一下,cmd cd到matlab7的程序目錄bin文件夾下,注冊 matlab /regserver,就可以調用matlab了,先測試第一種方法,調用引擎,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])");

      在臺式機上可以運行,但是到了筆記本上engOpen返回false,經過研究發現有可能是管理員權限的問題,

      項目右鍵-屬性-鏈接器-清單文件-uac執行級別選擇requireAdministrator,重新編譯運行果然正確了,先記錄下來。

      C/C++調用Matlab

      在工程實踐中,C/C++調用Matlab 的方法主要有調用Matlab 計算引擎、包含m 文件轉換的C/C++文件,以及調用m文件生成的DLL 文件。

      在調用Mallab方法、代碼或DLL之前,先設置matlab的編譯器。

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

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

      1 利用Matlab計算引擎

      Matlab的引擎庫為用戶提供了一些接口函數,利用這些接口函數,用戶在自己的程序中以計算引擎方式調用Matlab 文件。該方法采用客戶機/服務器的方式,利用Matlab 引擎 將Matlab 和C/C++聯系起來。在實際應用中,C/C++程序為客戶機,Matlab 作為本地服務器。

      C/C++程序向Matlab 計算引擎傳遞命令和數據信息,并從Matlab 計算引擎接收數據信息。

      Matlab提供了以下幾個C語言計算引擎訪問函數供用戶使用:engOpen,engClose,engGetVariable,engPutVariable,engEvalString,engOutputBuffer,engOpenSingleUse, engGetVisible,engSetVisible。

      頭文件#include "engine.h"這個文件在 %MATLAB_PATH%externinclude里,我們在VC++目錄包含過了。否則,就會提示 cannot find engine.h file之類的錯誤。然后,我們需要引用幾個函數調用依賴庫(lib) libeng.lib libmx.lib libmat.lib。

      在Matlab 下運行example2.exe: mex -f example2.c。

      利用計算引擎調用Matlab的特點是:節省大量的系統資源,應用程序整體性能較好,但不能脫離Matlab的環境運行,且運行速度較慢,但在一些特別的應用時可考慮使用。

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

      Matlab自帶的C++ Complier--mcc,能將m文件轉換為C/C++代碼。因此,它為C/C++程序調用m文件提供了另一種便捷的方法。下面舉例說明相應步驟:

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

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

      b.在VC中新建一個基于對話框的MFC應用程序Test2,添加一個按鈕,并添加按鈕響應函數,函數內容見f 步。將上面生成的兩個文件拷貝到VC 工程的Test2 目錄下。

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

      d.選擇屬性表C/C++選項,下拉菜單選General,在預處理程序定義中保留原來有的內容,并添加MSVC,IBMPC,MSWIND,并用逗號隔開。選擇下拉菜單的PrecompiledHeaders選項,在“自動使用預補償頁眉”中添加stdafx.h,然后確定。

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

    【C++如何調用matlab函數】相關文章:

    Java程序如何調用C/C++語言函數03-25

    C/C++函數調用的方式07-29

    C++調用C函數的方法05-21

    C/C++函數調用的方式有哪些06-23

    Java程序調用C/C++語言函數的方法07-31

    如何在C/C++中調用Java03-13

    匯編調用C函數02-02

    java調用c函數的實例04-25

    C語言函數的運用及調用05-10

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人