新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > Matlab與C/C++混合編程接口及應用

        Matlab與C/C++混合編程接口及應用

        作者: 時間:2012-08-27 來源:網絡 收藏

        下運行example2.exe: mex -f example2.c。運行結果如圖1 所示:

        利用計算引擎調用的特點是:節省大量的系統資源,應用程序整體性能較好,但 不能脫離的環境運行,且運行速度較慢,但在一些特別的應用[9](例如需要進行三維 圖形顯示)時可考慮使用。

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

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

        a.新建example3.m:function y=exmaple3(n) y=0; for i=1:n y=y+i;end

        保存后在命令窗口中輸入:mcc -t -L Cpp -h example3.

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

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

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

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

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

        f.在響應函數中添加頭文件:#include matlab.hpp #include example3.hpp 函數響應代碼為:

        int i; mwArray n; n=10; n=example3(n); i=n.ExtractScalar(1);

        CString str; str.Format(example3 的返回值是:%d,i); AfxMessageBox(str);

        g. 編譯,連接,執行,結果如圖2 所示。



        關鍵詞: Matlab 混合編程 接口

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和顺县| 额尔古纳市| 婺源县| 额济纳旗| 曲水县| 泸州市| 黄山市| 武川县| 保山市| 象州县| 珠海市| 山阳县| 梁山县| 花莲市| 西城区| 连江县| 遵化市| 鸡东县| 潜山县| 分宜县| 磐安县| 博爱县| 繁昌县| 刚察县| 黄骅市| 隆尧县| 广元市| 南平市| 寿阳县| 铜梁县| 于都县| 贺兰县| 微山县| 安西县| 屏南县| 都江堰市| 韶山市| 柳江县| 建昌县| 获嘉县| 达州市|