全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:6216
推到 Plurk!
推到 Facebook!

請問MATLAB可以加入C code嗎???

尚未結案
azon
一般會員


發表:1
回覆:1
積分:0
註冊:2005-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-29 14:55:36 IP:140.125.xxx.xxx 未訂閱
我想要再MATLAB程式裡面加入一段資料結構的C code, 請問各位先進,可以直接加入嗎???

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-29 15:07:24 IP:61.70.xxx.xxx 未訂閱
Matlab語法很像C,但跟C不太一樣,你無法直接加入. 但是你可以透過matlab裡頭help的指令去找相關的語法格式,再加以套用就ok了. ex. help for 試試看吧!
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
azon
一般會員


發表:1
回覆:1
積分:0
註冊:2005-03-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-29 15:42:50 IP:140.125.xxx.xxx 未訂閱
引言: Matlab語法很像C,但跟C不太一樣,你無法直接加入. 但是你可以透過matlab裡頭help的指令去找相關的語法格式,再加以套用就ok了. ex. help for 試試看吧!
恩~~好的~~ 謝謝你的回覆喔~~
kuoyung
一般會員


發表:3
回覆:5
積分:1
註冊:2004-11-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-21 16:18:35 IP:203.64.xxx.xxx 未訂閱
您好,我也是Matlab的初學者,最近剛好也有遇到用C去Call Matlab指令 建議您可以試著用mcc的指令,裡頭有很多不同的功能,若想要清楚的知道每個指令可用hellp mcc ,Matlab便會顯示出所有與mcc裡的使用參數。 以下是小弟我在網路上看到的文章,大家可以一起來討論 MATLAB5.3的提供了C/C 數學庫,其中的C 數學庫功能很強,使用它可以用類似MATLAB的語法編寫C 程序,十分方便。雖然速度上仍然比手工C/C 程序慢,但是由此換來的高效的開發效率和可靠性往往是值得的。另外mcc命令可以將M文件轉化為C或CPP文件,編譯后可以脫離MATLAB運行,它們也是使用的C/C 數學庫。 不過,MATLAB的數學庫在開發時似乎傾向于編譯獨立的可執行程序,把VC、BC只是作為一個編譯和連接的工具,而沒有過多地考慮在VC、BC的集成環境下進行開發。這給我們帶來了不便。 很多網友問起如何將MCC生成的C 程序嵌入到VC。最近對這個問題做了一下嘗試,在這里做一個總結,請大家回去試試。這里只介紹VC的情況,用BC的網友就自己研究研究吧,估計是類似的。 1、設置項目編譯選項 首先建立一個新的項目,或者打開一個已有的項目,然后選擇菜單: Project->Settings->C/C Category:Preprocessor Preprocessor definitions: 添加: MSVC,IBMPC,MSWIND Category: Precompiled Headers 選擇: Automatic use of precompiled headers Through header: stdafx.h 2、調設置項目連接選項 首先要從下面幾個函數定義文件(*.def)生成相應的導入庫文件(*.lib) libmmfile.def libmcc.def libmatlb.def libmx.def libmat.def 它們位于目錄c:\matlab\extern\include 用下面命令導出庫文件: 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 將它們放入你的項目連接選項 Project->Settings->Link Category:Input Object/library modules: 添加:libmatpm.lib libmmfile.lib libmcc.lib libmatlb.lib libmx.lib libmat.lib 注1: 中間是空格,不要加逗號 注2: libmatpm.lib是C MathLib的庫,如果是只用C,就不用連接它了。 Ignore libraries: 添加: msvcrt.lib 注: 僅在Debug版本中需要。原因不明:P 以上的這些lib文件,我已經做好了,打了個包放在這里下載:matlablibs.zip (64K) 3、設置編譯環境 Tools->Options->Directories Include fiels添加: c:\matlab\extern\include c:\matlab\extern\include\cpp Library fiels添加: c:\matlab\extern\lib c:\matlab\extern\include 注:下面這個目錄是那些lib所在的地方。 如果都挪到上面的目錄,這個自然就不要了。 4、編寫程序 用MCC命令生成的CPP文件和自己手工編寫的CPP文件, 其項目設置是完全相同的, 程序的語法原則上也是一樣的. 只是MCC生成的CPP文件有大量"沒用"的代碼. (1)添加自己編寫的程序模塊 用下面文件頭: #i nclude "stdafx.h" #i nclude "matlab.hpp" 然后, 按照C MathLib文檔要求的格式書寫程序. (2)嵌入mcc生成的文件 在MATLAB下用下面格式的命令生成cpp文件 mcc -t -L Cpp test 得到test.hpp, test.cpp 將test.cpp加入項目, 不做任何改動. 最后,摁F7編譯就可以了。 5、實例 上面羅羅嗦嗦一大堆,肯定讓你打哈欠了:P 沒關系,其實還是挺簡單的,這里有個VC的project,用C 數學庫解決了一個幼兒園的算術題,下載回去看看吧,馬上就明白了。 MccDemo.zip (68K) 這里先說明一下: MATLAB程序test.m: function [sum, prod]=test(x,y) sum = x y; prod = x*y; 用來計算兩個數的和與積。注意這是兩個返回變量的情況。 另外,x,y當然可以是數組。 用mcc命令生成了test.hpp和test.cpp。 文件demo.cpp: #i nclude "stdafx.h" #i nclude "matlab.hpp" #i nclude "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 數學庫,語法很簡單。注意數組的賦值、其中數據的存取,這些都要仔細地看手冊。 最后是跳出一個消息框,顯示計算結果。 改程序啟動之后,選擇菜單mcc->demo即可
系統時間:2024-04-20 10:46:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!