![]() 在前面,我們研究如何可以使用MATLAB C API來解決工程問題。在這篇文章中,我會告訴你如何可以使用MATLAB C數(shù)學(xué)庫。 ?在MATLAB C數(shù)學(xué)庫提供了兩個獨立的選區(qū):MATLAB的程序員,尋求更多的解釋MATLAB的速度或完全獨立,并需要一個快速,易于使用的矩陣數(shù)學(xué)庫的C程序員。每個,它提供了獨特的優(yōu)勢。矩陣實驗室 MATLAB是矩陣實驗室的簡稱。這意味著每一個計算矩陣形式進(jìn)行。另一方面包裹在矩陣形式和每個函數(shù)的每個數(shù)據(jù)類型作為輸入?yún)?shù)矩陣。 比如你要乘以多項式如下:A =(3 × 2 5倍7)(4X5的3x3 - X2 1) 你可以使用任何多項式的系數(shù)矩陣: [3 5 7](3 × 2 5倍7)[4 0 3 -1 0 1](4X5的3x3 - X2 1),使用兌換功能,我們可以得到的結(jié)果系數(shù):CONV([3 5 7 ],[4 0 3 -1 0 1]):A = [12 20 37 12 16 -4 5 7] 的意思是:一個= 12x7 20X6 37x5 12x4 16x3 - 4X2的5倍7C數(shù)學(xué)庫 MATLAB C數(shù)學(xué)庫包括約400 MATLAB數(shù)學(xué)函數(shù)。它包括內(nèi)置在MATLAB數(shù)學(xué)函數(shù)和許多數(shù)學(xué)MATLAB的M文件實現(xiàn)的功能。 MATLAB C數(shù)學(xué)庫是分層的MATLAB C數(shù)學(xué)庫上。這個C層的增加值主要是易用性。 MATLAB C數(shù)學(xué)庫,牢牢扎根在MATLAB的運行環(huán)境的傳統(tǒng)。用MATLAB C數(shù)學(xué)庫的編程是非常喜歡寫在MATLAB M文件。雖然C語言對幾個不同,由MATLAB C數(shù)學(xué)庫使用的語法是MATLAB語言的語法非常相似。像MATLAB,MATLAB C數(shù)學(xué)函數(shù)庫提供了自動內(nèi)存管理,保護(hù)程序員從內(nèi)存泄漏。 mwArray類,介紹了構(gòu)建一個矩陣數(shù)據(jù)類型所代表的每一個矩陣。正如我以前說過,每一個數(shù)據(jù)必須被包裹在一個矩陣形式在另一方面:mwArray。 一個C原型支持所有可能的方法來調(diào)用特定的C數(shù)學(xué)庫函數(shù)。您可以通過檢查函數(shù)的語法重建的C原型。在下面的過程中,SVD()函數(shù)是用來說明這個過程。MATLAB Syntaxs = SVD(X)[U,S,V] = SVD(X)[U,S,V] = SVD(X,0) 在這個例子中,原型對應(yīng)的[U,S,V] = SVD(X,0)構(gòu)造一步一步。直到最后一步,原型是不完整的。 添加輸出參數(shù)減去第一個輸出參數(shù),U是函數(shù)的返回值。返回值的數(shù)據(jù)類型是mwArray。 mwArray SVD(輸出參數(shù)的剩余數(shù)量,S和V,作為參數(shù)的函數(shù)的第一,第二等,的原型。輸出參數(shù)的數(shù)據(jù)類型是mwArray *. mwArray SVD(mwArray ? S,mwArray * V,添加輸入?yún)?shù)添加原型,X和零個,一個輸入?yún)?shù)的數(shù)量,陸續(xù)以下輸出參數(shù)。輸入?yún)?shù)的數(shù)據(jù)類型是mwArray。 mwArray SVD(mwArray ? S,mwArray,CONST mwArrayamp * V, 常量mwArrayamp X,零); 原型是完整的。如何翻譯成C調(diào)用MATLAB呼叫 此過程轉(zhuǎn)換MATLAB調(diào)用[U,S,V] = SVD(X,0)到C調(diào)用。該程序適用于一般庫函數(shù)。請注意,在一個MATLAB C數(shù)學(xué)庫函數(shù)的調(diào)用,前面是由放大器的輸出參數(shù);輸入?yún)?shù)是沒有。聲明作為mwArray變量輸入,輸出和返回變量,輸入變量和賦值。 function.U = SVD的返回值(設(shè)為第一MATLAB輸出參數(shù)任何其他輸出參數(shù)傳遞的第一個參數(shù)的功能 U = SVD(安培;,S,放大器,V,輸入?yún)?shù)傳遞給C函數(shù)后,輸出arguments.U = SVD(放大器,S,放大器,V,X,0); 翻譯完成。 注意,如果你看到一個MATLAB的輸入?yún)?shù)[],你應(yīng)該通過C參數(shù)mwArray()。例如,B = cplxpair(A,[],朦朦朧朧) becomesB = cplxpair(一,mwArray(),DIM);mwArray類 mwArray類的公共接口是比較小,構(gòu)造函數(shù)和析構(gòu)函數(shù)重載new和delete運算符,一個用戶定義的轉(zhuǎn)換,四個索引運算符,賦值運算符,輸入和輸出操作符,數(shù)組大小查詢例程組成。 mwArrays公共接口不包含任何數(shù)學(xué)運算符或函數(shù)。 構(gòu)造函數(shù) mwArray接口提供了許多有用的構(gòu)造函數(shù)。從以下類型的數(shù)據(jù),可以構(gòu)造一個mwArray對象:一個數(shù)值標(biāo)量,標(biāo)量數(shù)組,字符串,mxArray *,或另一個mwArray對象 。 mwArray() 創(chuàng)建一個未初始化的數(shù)組。產(chǎn)生一個未初始化的數(shù)組傳遞給MATLAB C數(shù)學(xué)函數(shù)庫的警告。如果使用此默認(rèn)構(gòu)造函數(shù)創(chuàng)建一個數(shù)組,必須是一個值分配給它之前將它傳遞到一個MATLAB C數(shù)學(xué)庫函數(shù)。 要創(chuàng)建一個空的雙矩陣對應(yīng)[]在MATLAB中,使用 空() mwArray(常量字符* STR) 創(chuàng)建一個字符串?dāng)?shù)組。該構(gòu)造的字符串復(fù)制。 mwArray(INT32 INT32行,COLS,雙*實時,雙* IMAG = NULL) 創(chuàng)建一個或兩個雙精度浮點數(shù)的陣列mwArray。如果指定了兩個數(shù)組,構(gòu)造函數(shù)創(chuàng)建一個復(fù)雜的數(shù)組;兩個輸入數(shù)組必須是相同的大小。在輸入數(shù)組中的數(shù)據(jù)必須在列的大訂單,通常的反向行的C S大訂單。此構(gòu)造輸入數(shù)組復(fù)制。 注意最后一個參數(shù),成像,被分配在構(gòu)造函數(shù)中的NULL值。 IMAG是一個可選參數(shù)。當(dāng)你調(diào)用這個構(gòu)造函數(shù),你不需要指定可選的參數(shù)。 mwArray(CONST mwArrayamp; mtrx) 復(fù)制mwArray。此構(gòu)造是熟悉的C拷貝構(gòu)造函數(shù),復(fù)制輸入數(shù)組。為了提高效率,這個例程實際上不復(fù)制數(shù)據(jù),直到數(shù)據(jù)被修改。這些數(shù)據(jù)是通過指針引用,直到發(fā)生了修改。 mwArray(常量mxArray * mtrx) mxArray * mwArray,如可能在MATLAB C數(shù)學(xué)庫或應(yīng)用程序界面庫的任何例程返回。此例程不輸陣,但析構(gòu)函數(shù)釋放它復(fù)制;因此輸入數(shù)組必須在堆中分配。在大多數(shù)情況下,例如,從應(yīng)用程序接口庫返回的矩陣,這是所期望的行為。 mwArray(雙啟動,雙步,雙停) 創(chuàng)建一個坡道。此構(gòu)造就像MATLAB的冒號(:)運算符。例如,呼叫mwArray(1,0.5,3)創(chuàng)建矢量[1,1.5,2,2.5,3]。 mwArray(INT32開始,INT32,INT32步停止) 創(chuàng)建一個整數(shù)的坡道。 mwArray(常量mwSubArray放大器;) 從mwSubArray創(chuàng)建mwArray。當(dāng)應(yīng)用于數(shù)組索引操作,其結(jié)果是不是另一個數(shù)組,而是一個mwSubArray對象。 mwSubArray對象記得索引操作。評價操作被推遲,直到結(jié)果被分配或使用另一種表達(dá)方式。這個構(gòu)造函數(shù)的計算結(jié)果mwSubArray對象編碼的索引操作,并建立相應(yīng)的數(shù)組 mwArray(雙) 創(chuàng)建1 - 1從一個雙精度浮點數(shù)mwArray。 mwArray(INT) 從一個整數(shù)創(chuàng)建一個mwArray。表1顯示了簡短。 mwArray構(gòu)造函數(shù)構(gòu)造創(chuàng)建范例 mwArray() 未初始化的數(shù)組 mwArray一個; mwArray(常量字符*) String數(shù)組 mwArray一個("MATLAB的Rulesquot); mwArray(INT32,INT32,雙*雙*) 復(fù)雜的數(shù)組 雙真正的[] = {1,2,3,4} 雙IMAG [] = {5,6,7,8} mwArray(2,2,真實,IMAG) ; mwArray(CONST mwArrayamp;) 復(fù)制輸入數(shù)組 mwArray一個= RAND(4); mwArray B(A) mwArray(CONST mxArray *) 復(fù)制mxArray * mxArray * M = mlfScalar(1); mwArray墊(M); mwArray(雙,雙,雙) 斜坡 mwArray A(1.2,0.1,3.5); mwArray(INT32,INT32,INT32) 整數(shù)坡道 mwArray一個(1,2,9); mwArray(CONST mwSubArrayamp;) 從子數(shù)組的數(shù)組(在索引中使用) mwArray一個= RAND(4) mwArray乙(A(3,3)); mwArray(雙) 雙標(biāo)量數(shù)組 mwArray A(17.5); mwArray(INT) 標(biāo)量整數(shù)數(shù)組 mwArray一(51); 數(shù)學(xué)函數(shù) 下面是一個有用的數(shù)學(xué)函數(shù)的MATLAB C數(shù)學(xué)庫的清單:加,減mtimes,MPOWERACOS,ASINCONVconjDEC2BIN,DEC2HEXDISPFFT,fft2linspace最大值,最小值根rot90使用C數(shù)學(xué)庫 若要添加C數(shù)學(xué)庫的支持,請按照下列指示:\stdafx.h的末尾添加下面一行 #包括lt; matlab.hppgt; matlab.hpp C數(shù)學(xué)庫接口。添加到Visual Studio(工具 - >選項 - >目錄)目錄接口文件(*. HPP)。例如:X:\ MATLAB \的extern \ INCLUDE \ CPP,其中x是驅(qū)動器的MATLAB路徑信 將所需的庫添加到您的項目(在這個例子中,libmatpm.lib) 編譯您的項目!示例程序的#include"stdafx.hquot;#包括"; matlab.hppquot; / / CPP數(shù)學(xué)庫的MATLAB接口/ /添加C數(shù)學(xué)庫項目的#pragma評論(LIB,"libmatpm.libquot;)的#pragma評論(LIB,"libmx.libquot;)的#pragma評論(LIB,"libmatlb.libquot;)的#pragma評論(LIB,"libmat.libquot;)的#pragma評論(LIB,"libmmfile.libquot;)的#pragma評論(LIB,"libmatpm.libquot;)INT主(INT ARGC,CHAR * ARGV []){ mwArray,A,B,C; 一個魔術(shù)(mwArray(5)); 乙= TRANSPOSE(A)/ / B = A" C =加號(甲,乙); / / C = A B; 彗星=減去(A,B)/ / C = A - B; C = mtimes(一,二); / / C = A * B;& #160; 雙arr1 [] = {3.0,2.0,5.0,-1.0}; 雙arr2 [] = {8.0,1.0,3.0,-2.0}; mwArray D(1,4,arr1); 60; mwArray E(4,1,arr2); C = D * E / / 4 * 4矩陣mwArray F(0.0,0.1,5.0); / /創(chuàng)建雙斜坡 &# 160; F = F *移調(diào)(F) A.打?。?Aquot;); / /魔法陣,令= 5 C.打?。?Cquot;); D.打印("Dquot;); 返回0;}已知問題編譯matlab.hpp時,編譯器會報告錯誤:C:\ MATLAB \的extern \ \ CPP \ matmtxif.h(16):致命錯誤C1083:無法打開包含文件strstream.h。沒有這樣的文件或目錄。 : 這個錯誤是由于缺少在MSVC環(huán)境的預(yù)處理器定義。為了緩解這一問題,必須添加以下定義應(yīng)用程序的項目文件:MSVCMSWINDIBMPCD__STDC_ 添加到您的項目:項目GT設(shè)置- GT的C / C - GT;預(yù)處理器定義的預(yù)處理器。鏈接器報告的錯誤時,將MATLAB庫文件:LINK:警告LNK4098:defaultlib"; MSVCRTquot"與其他庫的使用沖突; 使用/ NODEFUALTLIB:庫\ ex1.exe:致命錯誤LNK1169:一個或多個多重定義的符號發(fā)現(xiàn)錯誤執(zhí)行LINK.EXE 要解決這個問題的更改項目設(shè)置,建立多線程DLL在運行時庫。請按照以下說明:從主菜單中選擇項目選擇設(shè)置點擊C / C + +標(biāo)簽在"類別"下拉菜單中選擇代碼生成在運行時庫場選擇多線程DLL(調(diào)試多線程DLL"不會工作)單擊"確定"重建您的項目需求 V5.0或更高 C數(shù)學(xué)庫工具箱編程的知識!參考文獻(xiàn) MATLAB C數(shù)學(xué)庫用戶指南()C數(shù)學(xué)庫參考() 享受! 關(guān)于作者:A。Riazi
![]() ![]() 我是一名編程愛好者,
謝謝為我們提供一個學(xué)習(xí)和分享的平臺。 有什么問題??梢跃捅緝?nèi)容回復(fù),我看到時。會盡量回復(fù)的。 評論會員:adityapatel_2006 時間:2011/11/29 您好,有誰知道如何解決稀疏線性系統(tǒng)的矩陣除法運算是在Matlab 執(zhí)行 評論會員:。TolgaOzaslan 時間:2011/11/29 喜我要發(fā)送的數(shù)據(jù)從VC到MATLAB。我嘗試UDP通信作為客戶端和MATLAB的VC沒有工作。 現(xiàn)在,我嘗試使用演示程序engwindemo.c(其MATLAB幫助)使用MATLAB的發(fā)動機(jī)。所以我計劃直接寫入MATLAB的緩沖區(qū)或使用 在此,即使我我頭文件丟失,即使我復(fù)制在各自的項目filder它包括必要的頭文件。所以我在VC的主要文件夾復(fù)制。但我得到這些錯誤如: 1gt; C:\用戶\阿迪亞\文件\ Visual Studio 2008中\(zhòng) \ DATA \ \ data.cpp(40):錯誤C2664:"MessageBoxW":不能將參數(shù)2從"LPSTR"'LPCWSTR' 1gt;指向的類型無關(guān);轉(zhuǎn)換要求reinterpret_cast,C樣式轉(zhuǎn)換或函數(shù)樣式轉(zhuǎn)換 1gt; C:\用戶\阿迪亞\文件\ Visual Studio 2008中\(zhòng) \ DATA \ \ data.cpp(105):錯誤C2664:"MessageBoxW":不能將參數(shù)2從"LPSTR"'LPCWSTR' 1gt;指向的類型無關(guān);轉(zhuǎn)換要求reinterpret_cast,C樣式轉(zhuǎn)換或函數(shù)樣式轉(zhuǎn)換 1gt; C:\用戶\阿迪亞\文件\ Visual Studio 2008中\(zhòng) \ DATA \ \ data.cpp(114):錯誤C2664:"MessageBoxW":不能將參數(shù)2從"LPSTR"'LPCWSTR' 1gt;指向的類型無關(guān);轉(zhuǎn)換要求reinterpret_cast,C樣式轉(zhuǎn)換或函數(shù)樣式轉(zhuǎn)換 1gt; C:\用戶\阿迪亞\文件\ Visual Studio 2008中\(zhòng) \ DATA \ \ data.cpp(123):錯誤C2664:"MessageBoxW":不能將參數(shù)2從"LPSTR"'LPCWSTR' 1gt;指向的類型無關(guān);轉(zhuǎn)換要求reinterpret_cast,C樣式轉(zhuǎn)換或函數(shù)樣式轉(zhuǎn)換 請任何幫助,將高度贊賞 評論會員:ziey87 時間:2011/11/29 Selam Aleykum,我想用VS2005中使用MATLAB C庫。有沒有辦法,我可以做到這一點? 我已經(jīng)試過你的代碼,但我得到了一些編譯錯誤。但是他們沒有涉及到您的代碼,但做工。關(guān)于編譯器和Matlab的假設(shè)上的編譯器的可能的替代方案(即它不期望VS200X) 評論會員:sdas_ju 時間:2011/11/29 蒙特卡羅方法由一臺計算機(jī)上的隨機(jī)數(shù)實驗解決的問題。他們一直圍繞20世紀(jì)40年代中期以來,的估計進(jìn)行實驗,其中飛鏢隨機(jī)扔在一個邊長為d的正方形板,如下所示相對簡單的方式 由于圓的面積和面積的平方,然后按 在蒙特卡洛實驗,?飛鏢扔在板。讓PI =(XI,YI)的第i鏢(I = 1,2,3,...,N)的坐標(biāo)點。點pi的圓圈內(nèi),如果是 如果在實驗中X飛鏢結(jié)束圓(X LT,N)內(nèi)降落,然后蒙特卡羅估計是 分配問題 寫一個MATLAB程序,將 1。本實驗?zāi)M產(chǎn)生對均勻分布的隨機(jī)數(shù)的x坐標(biāo)和y坐標(biāo)的第二。隨機(jī)數(shù)應(yīng)調(diào)整,使他們覆蓋的時間間隔[- D,D]。計算是否在于圓內(nèi)的每一個數(shù)據(jù)點Pi。在實驗結(jié)束時,總結(jié)飛鏢的圓圈內(nèi),謊言和評估方程(*) 2。打印實驗(N)(X)的圓圈內(nèi)的試驗點的總數(shù),和蒙特卡洛。 估計總數(shù)的審判 3。上面畫的圖(X,Y)坐標(biāo)飛鏢投擲試驗 評論會員:daisy02 時間:2011/11/29 我使用MSVC 6.0和MATLAB的版本6.5.0.180913a(R13)收到此錯誤: C:\ matlab6p5 \工作\ matlab_cpp \ matlab_cpp.cpp(3):致命錯誤C1083:無法打開預(yù)編譯頭文件:"調(diào)試/ MATLAB_CPP.pch":沒有這樣的文件或目錄 執(zhí)行cl.exe時出錯 評論會員:。CATY 時間:2011/11/29 您好大家,我面臨的一個問題,在我的MATLAB C編程我已經(jīng)成功compliled和聯(lián)系起來這段代碼,但是當(dāng)我跑。exe文件,結(jié)果顯示"按任意鍵繼續(xù)",所以我調(diào)試它,當(dāng)它跑到線的主要(),跳了一個錯誤"在ex1.exe未處理的異常(NTDLL.DLL):0xC0000005:訪問沖突。" 代碼如下,運行在Windows XP2,視覺stidio C + + 6.0,MATLAB 6.5.1。 非常感謝你。 #包括"stdafx.h中" 包括"matlab.hpp" # 靜態(tài)雙數(shù)據(jù)[6] = {1,2,3,4,5,6} INT(INT ARGC的char ** argv中) { 法院<<"請輸入一個矩陣:"< mwArray mat0(2,3,數(shù)據(jù)); 60; mwArray MAT1(3,2,數(shù)據(jù)); coutlt; LT,mat0 LT,LT; endl; 法院LT,LT; MAT1 LT,LT; endl; &# 160; coutlt; LT;"請輸入一個矩陣:LT,LT; endl; CIN LT,LT; MAT1; 60;coutlt; LT; MAT1 LT,LT; endl; 返回0;} 評論會員:mahmoodhashmi 時間:2011/11/29 喜我Caty.I"碩士生電optics.I與MATLAB和C#的工作,我的問題是,"是有可能轉(zhuǎn)換MATLAB項目exe文件MATLAB運行,而不能夠安裝在計算機(jī)上。如果是請幫助me.if有可能請回答"caty@ladyk.com" CATY威廉姆斯 歡呼 評論會員:游客 時間:2011/11/29 jstachera:|我親愛的,我的哲學(xué)碩士學(xué)生,要實施MatalbApriori算法,如果你認(rèn)為你對我的任何幫助,請做到這一點,我對你非常thankfull。的問候,馬哈茂德哈什米不要和死亡。azbanafsh 評論會員:游客 時間:2011/11/29 我曾嘗試做類似的東西在VisualStudio2005[MATLAB7,R14]#包括...mwArrayA,B,C,一個=魔術(shù)(mwArray(5))B=TRANSPOSE(A)...但它并不編譯。我得到以下錯誤:沒有發(fā)現(xiàn)錯誤C3861:"法寶":標(biāo)識符沒有發(fā)現(xiàn)錯誤C3861:"移調(diào)":標(biāo)識符等..我一直在尋找頭文件聲明函數(shù)在matlab目錄,但有什么像。只有mwArray聲明。如何調(diào)用MATLABC代碼的功能??請幫我!INDYkebitmat_f 評論會員:游客 時間:2011/11/29 我嘗試打開一個圖像在我的代碼(VC++6.0)問題是,我可以打開MATLAB樣本圖像,但我不能公開我的照片。我可以打開這個圖片:matlab.EvalString("我=imread('onion.png');");{BR}但我無法打開例如這個圖片:matlab.EvalString("我=imread("C:\計劃\MATLAB\R2007a\工具箱\圖片\imdemos\p2.JPG');");{BR}imgsrc=http://www./upimg/2011_11_29_20_03_46_1.gif問題出在哪里。你認(rèn)罪可以幫助我感謝會員4514057 評論會員:游客 時間:2011/11/29 我使用VC++6.0編譯您的代碼,做同樣的什么寫,但我發(fā)現(xiàn)這個問題:C:\matlab6p5\的extern\INCLUDE\CPP\init.h(17):錯誤C2079:"mwLibraryInitBuiltins"使用未定義類"DLL_EXPORT"C:\matlab6p5\的extern\INCLUDE\CPP\init.h(17):錯誤C2239:意外的標(biāo)記"{"下面的聲明"mwLibraryInitBuiltins"C:\matlab6p5\的extern\\CPP\init.h(27):錯誤C2146:語法錯誤:缺少";"在標(biāo)識符"mathworks_math_library_initialize_builtins'C:\matlab6p5\的extern\INCLUDE\CPP\init.h(27):錯誤C2370:'mwLibraryInitBuiltins":重新定義,不同的存儲類C:\matlab6p5\的extern\INCLUDE\CPP\init.h(17):見申報"mwLibraryInitBuiltins"C:\matlab6p5\的extern\INCLUDE\CPP\init.h(27):致命錯誤C1004:意外的文件結(jié)尾發(fā)現(xiàn)救救我!謝謝!dilaverv 評論會員:游客 時間:2011/11/29 得到錯誤消息,當(dāng)我嘗試的例子程序鏈接...libmatpm.lib(varargin.o):錯誤LNK2001:無法解析的外部符號_mclCreateNumericArraylibmatpm.lib(arrayidx.o):錯誤LNK2001:無法解析的外部符號_mclCreateNumericArrayMATLAB_CPP.obj:錯誤LNK2001:無法解析的外部符號_mclCreateNumericArraylibmatpm.lib(dblmtrx.o):錯誤LNK2001:無法解析的外部符號_mclCreateNumericArraylibmatpm.lib(stdexcpt.o):錯誤LNK2001:無法解析的外部符號_mclCreateNumericArraylibmatpm.lib(nsubarry.o):錯誤LNK2001:無法解析的外部符號_mclCreateNumericArrayMATLAB_CPP.exe-80(S)的錯誤,0警告(S)任何人都可以幫助我嗎?BTW,我使用MATLAB5.3,MSVC6.0和WindowsVista提前thanx在..smzhaq 評論會員:游客 時間:2011/11/29 包括從MATLABmclmcr.lib\的extern\在您的項目的lib目錄..smzhaq 評論會員:游客 時間:2011/11/29 您好,首先,非常感謝您所提供的所有信息。他們被證明是非常有用的。我有問題時,創(chuàng)建mwArray變量(我認(rèn)為)!這里是一塊從我的cpp文件CPP代碼:雙X=1.0;雙Y=2.0;mwArrayMX(X);//mwArray我(Y);TestlibInitialize();//測試(MX,我的);TestlibTerminate();當(dāng)我注釋掉"mwArrayMX(X)",一切工作正常-我可以編譯和運行我的程序沒有任何問題。我已經(jīng)包括了所有必需的。h和。lib文件。這里是我得到的輸出,當(dāng)我嘗試編譯我的程序沒有注釋掉該行(簡單地說,因為它是以上):鏈接...的VisualCToolsDlg.obj:errorLNK2019:??無法解析的外部符號_mclcppCreateError函數(shù)引用"公眾:__thiscallmwException:mwException(無效)"(0mwException@@QAE@XZ?)mwException的VisualCToolsDlg.obj:errorLNK2019:??無法解析的外部符號_ref_count_obj_addref引用功能"公眾:__thiscallmwException:(類error_info*,BOOL)"(0mwException@@QAE@PAVerror_info@@_n@Z?)的VisualCToolsDlg.obj:錯誤LNK2019:??無法解析的外部符號_ref_count_obj_release引用在函數(shù)"公眾:虛擬__thiscallmwException:?mwException(無效)"(?1mwException@@阿聯(lián)酋@XZ)的VisualCToolsDlg.obj:errorLNK2019:??無法解析的外部符號_error_info_get_message引用在函數(shù)"公眾:虛擬字符常量*__thiscallmwException:(無效)常量"(?@mwException@@UBEPBDXZ)引用的VisualCToolsDlg.obj:錯誤LNK2019:??無法解析的外部符號_mclcppGetLastError在功能上的"公共靜態(tài)無效的__cdeclmwException:RAISE_ERROR(無效)"(?RAISE_ERROR@mwException@@SAXXZ)_mclGetScalarDouble的VisualCToolsDlg.obj:錯誤LNK2019:??無法解析的外部符號在函數(shù)"公眾:__thiscallmwArray:mwArray(雙)"(?0mwArray@@QAE@N@Z)\發(fā)布/的VisualCTools.exe:致命錯誤LNK1120:無法解析的外部6這將是巨大的,如果我能得到這個響應(yīng)很快,因為我已經(jīng)非常有限的時間來完成我的項目。,Dilaversmzhaq 評論會員:游客 時間:2011/11/29 Assalam-O-Alaikum我面臨的一個問題,在我的應(yīng)用程序,我想使用MATLABC庫之一。問題是,特別是與該應(yīng)用程序,不與他人。當(dāng)我包括Matlab.hpp,編譯進(jìn)來116錯誤消息。這些錯誤消息的"amiguous聲明"如C2872錯誤:"復(fù)雜":模棱兩可的符號是否有任何身體知道什么可以可能的原因。沒有這樣的錯誤,而編譯的示例應(yīng)用程序,但與自己的應(yīng)用程序。我會很thankfull。齊亞Ttania 評論會員:游客 時間:2011/11/29 Assalam-O-Alaikum親愛的兄弟(Jazak安拉),我提出真正有用的文章,發(fā)現(xiàn)我的任務(wù)非常有用,但我仍然有一個問題,我解決不了因與C的初學(xué)者。我希望你們能幫助我。我需要的是檢索到傳統(tǒng)的數(shù)據(jù)類型(雙,浮法,長,整數(shù)等)專門的雙精度浮點數(shù)的標(biāo)值矩陣的元素。怎樣才可以做什么?安拉哈菲茲齊亞-UL-哈克xb211 評論會員:游客 時間:2011/11/29 我得到了它。這是雙功能mwArray(指數(shù))();非常感謝您xb211 評論會員:游客 時間:2011/11/29 Assalam-O-Alaikumimgsrc=http://www./upimg/2011_11_29_20_03_46_2.gif高興你找到答案!最好的問候,A.Riazixb211 |親愛的先生Riazi, 我嘗試從M文件(我使用MATLAB R2006a,WINXP) 共創(chuàng)一個C共享庫 根據(jù)MATLAB的幫助,這是很容易的。 C共享庫的例子 這個例子重寫以前的C共享庫的例子用C。從M文件創(chuàng)建C共享庫的程序是相同的,以建立一個C共享庫的程序,除非你使用cpplib的包裝。在一行中輸入以下命令: MCC - W cpplib的:libmatrixp - T鏈接:LIB addmatrix.m multiplymatrix.m eigmatrix.m - V - W cpplib的選項告訴MATLAB編譯器生成一個共享庫函數(shù)包裝,并調(diào)用它。 - T鏈接:lib選項指定目標(biāo)輸出作為共享庫。 注意編譯器將共享庫,因為您將需要在以后的目錄。 我有一些M -文件:helpf.m proteinpointset.m SF.m Tangle.m vectorproduct.m mainpart.m,并希望共創(chuàng)庫mylib中 但是,當(dāng)我寫 MCC - W cpplib的:mylib中T鏈接:LIB helpf.m proteinpointset.m SF.m Tangle.m vectorproduct.m mainpart.m - V 0; 錯誤:發(fā)生錯誤,同時炮擊了mbuild(錯誤代碼= 1)。 無法建立可執(zhí)行文件。 ?錯誤執(zhí)行MCC,返回狀態(tài)= 1。 D:\ MATLAB \ BIN \ MEX.PL:錯誤:"mylib.cpp"編譯失敗。 我希望在這個問題上的任何assitance。 非常感謝你。 最親切的問候 此致,Tatsiana 評論會員:Arris7 時間:2011/11/29 我沒有在該目錄matlab.hpp。我使用MATLAB7.3.0(R2006b) |
|