亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? vc++中使用matlab的c++數(shù)學(xué)庫(kù)和mcc生成的程序.txt

?? VC++中使用MATLAB的C++數(shù)學(xué)庫(kù)和MCC生成的程序
?? TXT
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
發(fā)信人: energy (長(zhǎng)白山), 信區(qū): MathTools
標(biāo)  題: VC++中使用MATLAB的C++數(shù)學(xué)庫(kù)和MCC生成的程序
發(fā)信站: BBS 水木清華站 (Fri Jul 16 01:30:11 1999)

http://obase.163.net/matlab/vcmcc.htm

VC++中使用MATLAB的C++數(shù)學(xué)庫(kù)和MCC生成的程序

0、簡(jiǎn)介

      MATLAB5.3的提供了C/C++數(shù)學(xué)庫(kù),其中的C++數(shù)學(xué)庫(kù)功能很強(qiáng),使用它可以用類似
MATLAB的語(yǔ)法編寫C++程序,十分方便。雖然速度上仍然比手工C/C++程序慢,但是由此
換來(lái)的高效的開(kāi)發(fā)效率和可靠性往往是值得的。另外mcc命令可以將M文件轉(zhuǎn)化為C或CPP
文件,編譯后可以脫離MATLAB運(yùn)行,它們也是使用的C/C++數(shù)學(xué)庫(kù)。

      不過(guò),MATLAB的數(shù)學(xué)庫(kù)在開(kāi)發(fā)時(shí)似乎傾向于編譯獨(dú)立的可執(zhí)行程序,把VC、BC只是作
為一個(gè)編譯和連接的工具,而沒(méi)有過(guò)多地考慮在VC、BC的集成環(huán)境下進(jìn)行開(kāi)發(fā)。這給我們
帶來(lái)了不便。

      很多網(wǎng)友問(wèn)起如何將MCC生成的C++程序嵌入到VC。最近對(duì)這個(gè)問(wèn)題做了一下嘗試,在
這里做一個(gè)總結(jié),請(qǐng)大家回去試試。這里只介紹VC的情況,用BC的網(wǎng)友就自己研究研究吧,
估計(jì)是類似的。

    1、設(shè)置項(xiàng)目編譯選項(xiàng)

     首先建立一個(gè)新的項(xiàng)目,或者打開(kāi)一個(gè)已有的項(xiàng)目,然后選擇菜單:

     Project->Settings->C/C++

     Category:Preprocessor
     Preprocessor definitions:
     添加: MSVC,IBMPC,MSWIND

    Category: Precompiled Headers

  選擇: Automatic use of precompiled headers
       Through header: stdafx.h


    2、調(diào)設(shè)置項(xiàng)目連接選項(xiàng)

     首先要從下面幾個(gè)函數(shù)定義文件(*.def)生成相應(yīng)的導(dǎo)入庫(kù)文件(*.lib)

        libmmfile.def
        libmcc.def
        libmatlb.def
        libmx.def
        libmat.def

    它們位于目錄c:\matlab\extern\include
    用下面命令導(dǎo)出庫(kù)文件:

      lib /def:libmmfile.def /out:libmmfile.lib /machine:ix86
      lib /def:libmcc.def /out:libmcc.lib /machine:ix86
      lib /def:libmatlb.def /out:libmatlb.lib /machine:ix86
      lib /def:libmx.def /out:libmx.lib /machine:ix86
      lib /def:libmat.def /out:libmat.lib /machine:ix86

    將它們放入你的項(xiàng)目連接選項(xiàng)

     Project->Settings->Link
    Category:Input

    Object/library modules:
    添加:libmatpm.lib libmmfile.lib libmcc.lib libmatlb.lib libmx.lib libmat.lib

注1: 中間是空格,不要加逗號(hào)
注2: libmatpm.lib是C++ MathLib的庫(kù),如果是只用C,就不用連接它了。

     Ignore libraries:
     添加: msvcrt.lib
     注: 僅在Debug版本中需要。原因不明:P)

    以上的這些lib文件,我已經(jīng)做好了,打了個(gè)包放在這里下載:matlablibs.zip (64K)

    3、設(shè)置編譯環(huán)境

    Tools->Options->Directories

   Include fiels添加:

     c:\matlab\extern\include
     c:\matlab\extern\include\cpp

    Library fiels添加:

    c:\matlab\extern\lib
    c:\matlab\extern\include

  注:下面這個(gè)目錄是那些lib所在的地方。
  如果都挪到上面的目錄,這個(gè)自然就不要了。


   4、編寫程序

        用MCC命令生成的CPP文件和自己手工編寫的CPP文件, 其項(xiàng)目設(shè)置是完全相同的,
程序的語(yǔ)法原則上也是一樣的. 只是MCC生成的CPP文件有大量"沒(méi)用"的代碼.

     (1)添加自己編寫的程序模塊

           用下面文件頭:
           #include "stdafx.h"
           #include "matlab.hpp"
           然后, 按照C++ MathLib文檔要求的格式書(shū)寫程序.

      (2)嵌入mcc生成的文件

           在MATLAB下用下面格式的命令生成cpp文件
               mcc -t -L Cpp test

           得到test.hpp, test.cpp
           將test.cpp加入項(xiàng)目, 不做任何改動(dòng).

           最后,按F7編譯就可以了。

   5、實(shí)例

       上面羅羅嗦嗦一大堆,肯定讓你打哈欠了:P)

       沒(méi)關(guān)系,其實(shí)還是挺簡(jiǎn)單的,這里有個(gè)VC的project,用C++數(shù)學(xué)庫(kù)解決了一個(gè)幼兒園的算
    術(shù)題,下載回去看看吧,馬上就明白了。

       MccDemo.zip (68K)

       這里先說(shuō)明一下:
         MATLAB程序test.m:
       function [sum, prod]=test(x,y)
         sum = x+y;
         prod = x*y;

       用來(lái)計(jì)算兩個(gè)數(shù)的和與積。注意這是兩個(gè)返回變量的情況。
    另外,x,y當(dāng)然可以是數(shù)組。

       用mcc命令生成了test.hpp和test.cpp。

    文件demo.cpp:

       #include "stdafx.h"
       #include "matlab.hpp"
       #include "test.hpp"

       void mccDemo()
       {
           CString str;
           mwArray x, y, sum, prod;
           double dx,dy,dsum,dprod;
           x = 5.0;
           y = 10.0;
           sum = test(&prod, x, y);

          dx=x(1,1);
          dy=y(1,1);
          dsum=sum(1,1);
          dprod=prod(1,1);
          str.Format("%f+%f=%f\n%f*%f=%f", dx,dy,dsum,dx,dy,dprod);

          AfxMessageBox(str);
       }

       由于采用了C++數(shù)學(xué)庫(kù),語(yǔ)法很簡(jiǎn)單。注意數(shù)組的賦值、其中數(shù)據(jù)的存取,這些都要仔細(xì)
    地看手冊(cè)。

       最后是跳出一個(gè)消息框,顯示計(jì)算結(jié)果。
       改程序啟動(dòng)之后,選擇菜單mcc->demo即可。


     1. 目的

        一般情況下,我們都是在MATLAB命令行或DOS命令行下編譯MEX程序。
    所用的命令就是:mex filename.c

    這有很多不方便的地方:
        a. 雖然mex也可以編譯C++的mex程序,但是它的主框架仍是C的
        b. 當(dāng)程序有多個(gè)模塊時(shí),需要多次使用mex命令,操作很麻煩
        c. 不能利用VC特有的ClassWizard自動(dòng)創(chuàng)建和維護(hù)類
        d. 不能用MFC類庫(kù)編寫應(yīng)用程序
        e. 不能方便地進(jìn)行類似VC的項(xiàng)目管理
        f. 等等...
          這樣一個(gè)命令行的編程環(huán)境可能會(huì)大大束縛你的想象力...
    其實(shí)解決問(wèn)題的方法很簡(jiǎn)單,下面以VC6環(huán)境為例詳細(xì)解說(shuō)如何在IDE中編譯MEX程序。

2. 步驟

   (1)準(zhǔn)備工作 (這里假設(shè)MATLAB的路徑為:C:\MATLAB)
      a. 由matlab.def創(chuàng)建庫(kù)文件matlab.lib
        進(jìn)入c:\matlab\extern\include目錄,用lib命令生成matlib.lib
        C:\>cd \matlab\extern\include

        C:\MATLAB\extern\include>lib /def:matlab.def /out:matlab.lib
        Microsoft (R) Library Manager Version 6.00.8447
        Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

        LIB : warning LNK4068: /MACHINE not specified; defaulting to IX86
           Creating library matlab.lib and object matlab.exp

        C:\MATLAB\extern\include>
        警告信息不用理它。

      b. 修改mex.h
        該文件也在C:\MATLAB\extern\include目錄
        找到這一行:void mexFunction(
        替換為    : __declspec( dllexport ) void mexFunction(
        另保存為  :mex_vc.h

    (2)啟動(dòng)VC,創(chuàng)建MFC AppWizard(dll)程序框架
    (3)設(shè)置系統(tǒng)選項(xiàng)

      a. 設(shè)定頭文件和庫(kù)文件路徑
           菜單Tools->Options->Directories
                Include files:添加c:\matlab\extern\include
                Library files:添加c:\matlab\extern\include

      b. 設(shè)置編譯連接選項(xiàng)
            菜單Project->Settings
            C/C++->Preprocessor definitions: 添加MATLAB_MEX_FILE
            Link->Object/Library modules:    添加matlab.lib
        注1. 其它優(yōu)化、調(diào)試以及頭文件、庫(kù)文件等選項(xiàng)看情況調(diào)整
        注2. Release版在General->Microsoft Foundation Classes選項(xiàng)中,
             必須設(shè)置為Use MFC in a Static Library. 原因不明:(

    (4)編寫DLL主程序

        a. 文件名要用.cpp為擴(kuò)展名,頭兩行必須是:
                #include "stdafx.h"
                #include "mex_vc.h"

        b. 編寫mexFunction函數(shù),用如下格式聲明:
                void mexFunction(
                         int nlhs,       mxArray *plhs[],
                         int nrhs, const mxArray *prhs[]
                         )
                {
                        ...
                }

    (5) 象普通VC的DLL程序一樣繼續(xù)編寫其它部分程序,加入其它模塊

    (6) 調(diào)試錯(cuò)誤,用F7編譯,生成DLL。我的例子:

--------------------Configuration: MatWave - Win32 Release--------------------
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
MatWave.cpp
sample.cpp
mex.cpp
Generating Code...
Linking...
   Creating library Release/MatWave.lib and object Release/MatWave.exp
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF
LINK : warning LNK4089: all references to "comdlg32.dll" discarded by /OPT:REF

MatWave.dll - 0 error(s), 2 warning(s)

        大功告成,有兩個(gè)警告,不理它。
        拿到MATLAB里面試試吧,不過(guò)要有非法操作和異常退出的心理準(zhǔn)備哦:P

        另外:如果要在MATLAB運(yùn)行中重新編譯DLL,需先執(zhí)行: clear mex

ICQ  : 6821977
Email: obase@163.net
WWW  : http://obase.163.net






Matcom




第一章、概述

第二章、在Matlab中使用mex和mcc(作者dodoo,energy)
 2.1 用c編寫mex程序[1]--dodoo
 2.2 用c編寫mex程序[2]--dodoo
 2.3 用c編寫mex程序[3]--dodoo
 2.4 用c編寫mex程序[4]--dodoo
 2.5 用c編寫mex程序[5]--dodoo
 2.6 用c編寫mex程序[6]--dodoo
 2.7 VC++中使用MATLAB的C++數(shù)學(xué)庫(kù)和MCC生成的程序--energy

第三章、Matcom的使用
 3.1  概述
    3.1.1 Matcom能作什么
    3.1.2 Matcom的工作原理
    3.1.3 Matcom的不足
    3.1.4 Matcom下載地址及網(wǎng)絡(luò)資源
 3.2  版本及安裝注意事項(xiàng)
    3.2.1 MIDEVA 4.0 的安裝
    3.2.2 MIDEVA 4.5 的安裝
 3.3  用Matcom翻譯m文件
 3.4  如何得到CPP源文件
 3.5  在CB中C++與Matlab語(yǔ)言混編
 3.6  程序的發(fā)布

附錄一、Matcom的函數(shù)分類列表


第一章、概述

    Matlab是當(dāng)今世界上使用最為廣泛的數(shù)學(xué)軟件,它具有相當(dāng)強(qiáng)大的數(shù)值計(jì)算、
數(shù)據(jù)處理、系統(tǒng)分析、圖形顯示,甚至符號(hào)運(yùn)算功能,是一個(gè)完整的數(shù)學(xué)平
臺(tái),在這個(gè)平臺(tái)上,你只需寥寥數(shù)語(yǔ)就可以完成十分復(fù)雜的功能,大大提高了
工程分析計(jì)算的效率。另外由于Matlab的廣泛使用,于是出現(xiàn)了為各個(gè)領(lǐng)域?qū)?門使用的工具箱(即在某一研究領(lǐng)域常用數(shù)學(xué)工具的函數(shù)包),這些工具箱的出現(xiàn)
更加促進(jìn)了Matlab的流行。

    Matlab強(qiáng)大的功能只能在它所提供的平臺(tái)上才能使用,也就是說(shuō),你必需在
安裝有matlab系統(tǒng)的機(jī)器上使用.m文件,這樣就給工程計(jì)算帶來(lái)了很大不便;特
別是,在matlab中,使用的行解釋方式執(zhí)行代碼,這樣大大地限制了代碼執(zhí)行速度。
于是人們想到,能否開(kāi)發(fā)一個(gè)matlab與其他高級(jí)語(yǔ)言的接口,這樣就可以把matlab
的強(qiáng)大功能融入各種應(yīng)用程序中,并且通過(guò)高級(jí)語(yǔ)言編譯器編譯為2進(jìn)制代碼,
從而大大提高了執(zhí)行速度。

    于是matlab的5.1版本提供了自帶的C++ Complier,同時(shí)MathTools公司也為
Matlab開(kāi)發(fā)了m文件高效解釋和調(diào)試IDE:MIDEVA。經(jīng)過(guò)近兩年的發(fā)展,matlab 5.3
中的C complier--mcc版本已經(jīng)為2.0,而MIDEVA最新版本為4.5。

    將matlab與C混合編程大概有如下三種方法:

1.用Matlab的mcc將.m文件翻譯為cpp源文件,然后在C編譯器中調(diào)用
  也可以用mcc編譯編譯為stand-alone程序。

2.用Matcom(MIDEVA)將.m文件翻譯為cpp代碼,并編譯為exe或dll
  文件。

3.按照matcom的語(yǔ)法,在VC或BCB中直接書(shū)寫matlab語(yǔ)句(與matlab
  很相似),這也是我最喜歡用的方法。

方法1和2/3各有利弊,1不支持圖形(支持圖形的庫(kù)國(guó)內(nèi)現(xiàn)在還沒(méi)有D),
1對(duì)類支持也不夠,2支持絕大多數(shù)的matlab語(yǔ)句(包括圖形),但對(duì)
于struct等的支持也有缺陷。


http://obase.163.net/matlab/vcmcc.htm

VC++中使用MATLAB的C++數(shù)學(xué)庫(kù)和MCC生成的程序

0、簡(jiǎn)介

    MATLAB5.3的提供了C/C++數(shù)學(xué)庫(kù),其中的C++數(shù)學(xué)庫(kù)功能很強(qiáng),使用它可以用類
似MATLAB的語(yǔ)法編寫C++程序,十分方便。雖然速度上仍然比手工C/C++程序慢,但是
由此換來(lái)的高效的開(kāi)發(fā)效率和可靠性往往是值得的。另外mcc命令可以將M文件轉(zhuǎn)化
為C或CPP文件,編譯后可以脫離MATLAB運(yùn)行,它們也是使用的C/C++數(shù)學(xué)庫(kù)。

    不過(guò),MATLAB的數(shù)學(xué)庫(kù)在開(kāi)發(fā)時(shí)似乎傾向于編譯獨(dú)立的可執(zhí)行程序,把VC、BC只
是作為一個(gè)編譯和連接的工具,而沒(méi)有過(guò)多地考慮在VC、BC的集成環(huán)境下進(jìn)行開(kāi)發(fā)。
這給我們帶來(lái)了不便。
   
    很多網(wǎng)友問(wèn)起如何將MCC生成的C++程序嵌入到VC。最近對(duì)這個(gè)問(wèn)題做了一下嘗試,
在這里做一個(gè)總結(jié),請(qǐng)大家回去試試。這里只介紹VC的情況,用BC的網(wǎng)友就自己研究

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷综合激情| 欧美网站一区二区| 久久嫩草精品久久久久| 国内成人自拍视频| 国产精品视频观看| 91视频你懂的| 五月激情丁香一区二区三区| 在线成人免费观看| 久久精品99久久久| 亚洲国产成人午夜在线一区| 99久久免费国产| 亚洲国产精品麻豆| 日韩片之四级片| 国产成人精品www牛牛影视| 日产国产欧美视频一区精品| 日韩一区二区三| 粉嫩av一区二区三区| 亚洲精品成人少妇| 欧美成人精品高清在线播放| 国产成人午夜精品影院观看视频 | 成人午夜免费av| 婷婷丁香激情综合| 欧美xxxx在线观看| 91亚洲精品乱码久久久久久蜜桃| 一区2区3区在线看| 欧美一区二区三区免费在线看| 国产精品亚洲午夜一区二区三区 | 亚洲成人自拍一区| 久久久久久久久岛国免费| 一本久道中文字幕精品亚洲嫩| 午夜激情久久久| 国产人妖乱国产精品人妖| 欧美在线观看视频一区二区三区| 免费在线观看一区二区三区| 中文字幕亚洲视频| 欧美xxxxxxxxx| 色噜噜狠狠成人网p站| 激情欧美一区二区三区在线观看| 亚洲欧美日韩在线不卡| 精品精品国产高清a毛片牛牛| 色综合中文字幕国产 | 色成人在线视频| 蜜桃av一区二区在线观看| 国产精品第13页| www日韩大片| 欧美日韩中文字幕精品| 成人污污视频在线观看| 免费观看在线综合色| 亚洲六月丁香色婷婷综合久久| 精品国产青草久久久久福利| 欧美日韩在线播放一区| 成人97人人超碰人人99| 久久精品国产**网站演员| 亚洲一二三四在线观看| 中文字幕一区二区三区视频| 欧美精品一区二区三区高清aⅴ| 色天使久久综合网天天| 成人深夜福利app| 六月丁香婷婷久久| 天堂av在线一区| 一区二区三区久久| 国产精品久久久久久久浪潮网站| 精品久久久久一区二区国产| 欧美男人的天堂一二区| 欧美做爰猛烈大尺度电影无法无天| 国产suv一区二区三区88区| 精品一区二区久久久| 青青草精品视频| 午夜伊人狠狠久久| 亚洲一线二线三线视频| 亚洲另类中文字| 亚洲私人影院在线观看| 国产精品乱码久久久久久| 国产亚洲精品aa午夜观看| 精品国产自在久精品国产| 日韩精品一区二区三区四区| 欧美一区二区在线观看| 欧美一区二区三区免费视频 | jizz一区二区| 成人高清视频免费观看| 粉嫩绯色av一区二区在线观看| 国产一区二区三区在线观看精品| 久久不见久久见免费视频1| 久久国产麻豆精品| 精品亚洲porn| 国产乱码一区二区三区| 高清av一区二区| av电影在线不卡| 91福利国产成人精品照片| 91国产免费看| 91精品国产综合久久福利| 91精品国产综合久久久久久漫画| 日韩一本二本av| 精品国产乱码91久久久久久网站| 一区二区三区四区激情| 亚洲成人av电影| 免播放器亚洲一区| 国产乱理伦片在线观看夜一区| 国产成人av电影在线| 99久久精品情趣| 欧美午夜精品久久久久久超碰| 欧美精品久久久久久久多人混战 | 中文字幕精品在线不卡| 中文字幕一区二区三区乱码在线 | 久久只精品国产| 国产精品久久久久久久蜜臀| 一区二区三区在线播放| 青青青伊人色综合久久| 国产成人在线视频网址| 91美女片黄在线| 欧美一级日韩免费不卡| 国产三区在线成人av| 亚洲激情成人在线| 免费在线看成人av| 99久久婷婷国产综合精品电影| 欧美日韩视频在线第一区 | 亚洲色欲色欲www| 爽爽淫人综合网网站| 国产一区在线不卡| 91精品福利视频| 欧美大片日本大片免费观看| 国产精品久久久久久久久晋中| 香蕉加勒比综合久久| 国产福利精品一区二区| 欧美综合一区二区| 欧美精品一区二区在线观看| 亚洲男人的天堂在线观看| 乱一区二区av| 欧美性生活久久| 国产精品午夜春色av| 奇米888四色在线精品| 处破女av一区二区| 91精品国产麻豆| 亚洲精品一二三| 国产精品18久久久久久久网站| 9191久久久久久久久久久| 中文字幕乱码久久午夜不卡| 偷拍日韩校园综合在线| 91蜜桃在线观看| 国产日韩亚洲欧美综合| 免费成人性网站| 欧洲色大大久久| 中文字幕一区二区日韩精品绯色 | 六月丁香婷婷久久| 欧美亚洲日本一区| 中文字幕一区二区三区在线不卡 | 一区二区三区视频在线看| 国产电影一区二区三区| 欧美一区二区精品久久911| 亚洲精品一二三四区| 成人av一区二区三区| 久久综合色婷婷| 美国三级日本三级久久99| 欧美日韩久久久| 亚洲综合一二三区| 色视频一区二区| 亚洲三级电影全部在线观看高清| 风间由美中文字幕在线看视频国产欧美| 欧美一区二区女人| 午夜影视日本亚洲欧洲精品| 在线看国产日韩| 亚洲精品乱码久久久久久黑人| 成人精品一区二区三区四区| 久久久久久久久久久久久久久99| 久久99热狠狠色一区二区| 日韩欧美国产1| 美女一区二区久久| 日韩一区二区在线观看| 免费成人在线网站| 精品国内片67194| 精品一区二区影视| 精品成人一区二区三区| 久久av中文字幕片| 久久综合五月天婷婷伊人| 国产在线视频不卡二| 久久女同精品一区二区| 国产高清精品网站| 国产精品色婷婷| 91在线观看地址| 一区二区三区四区高清精品免费观看| 色av一区二区| 无吗不卡中文字幕| 欧美不卡一二三| 久草热8精品视频在线观看| www久久精品| 不卡av在线网| 一级精品视频在线观看宜春院| 欧美视频中文一区二区三区在线观看| 亚洲成av人片一区二区| 欧美一区二区三区啪啪| 欧美喷潮久久久xxxxx| 日本不卡视频在线| 久久这里只有精品视频网| 成人免费va视频| 一区二区三区精品视频在线| 欧美二区乱c少妇| 国产美女视频一区| 综合色天天鬼久久鬼色| 在线成人av网站| 国产成人在线免费|