?? mathtools593.txt
字號:
發信人: FangQ (木頭蟲子), 信區: MathTools
標 題: Matlab與C++接口與混合編程討論小結(四)
發信站: BBS 水木清華站 (Tue Nov 2 22:26:44 1999)
第二章、
第二節、用c編寫mex程序[一]
發信人: fasiondog (亂了), 信區: MathTools
標 題: 用c 編寫mex程序[part 2] (轉信)
發信站: BBS 水木清華站 (Sun Apr 4 10:55:56 1999)
發信人: dodoo (虛懷), 信區: Programming
標 題: 用C編寫mex程序 [PART 2]
前面說到通過把耗時長的函數用c語言實現,并編譯成mex函數可以加快執行速度。這
Matlab5.1本身是不帶c語言的編譯器的,所以要求你的機器上已經安裝有VC,BC或Wat
com C中的一種。如果你在安裝Matlab時已經設置過編譯器,那么現在你應該就可以使用
mex命令來編譯c語言的程序了。如果當時沒有選,只要在Matlab里鍵入 mex -setup
,就會出現一個DOS方式窗口,下面只要根據提示一步步設置就可以了。由于我用的是w
聽說Matlab5.2已經內置了C語言的編譯器,那么下面的這些可能就用不著了。可惜現
需要注意的是,在設置編譯器路徑時,只能使用路徑名稱的8字符形式。比如我用的V
C5裝在路徑 C:\PROGRAM FILES\DEVSTUDIO下,那在設置路徑時就要寫成:C:\PROGRA~1
這樣設置完之后,mex就可以執行了。為了測試你的路徑設置正確與否,把下面的程序
存為hello.c。
存為hello.c。
存為hello.c。
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mexPrintf("hello,world!\n");
}
假設你把hello.c放在了C:\TEST\下,在Matlab里用CD C:\TEST\ 將當前目錄改為C:\
TEST\(注意,僅將C:\TEST\加入搜索路徑是沒有用的)。現在敲:
mex hello.c
如果一切順利,編譯應該在出現編譯器提示信息后正常退出。如果你已將C:\TEST\加
入了搜索路徑,現在鍵入hello,程序會在屏幕上打出一行:
hello,world!
看看C\TEST\目錄下,你會發現多了一個文件:HELLO.DLL。
這樣,第一個mex函數就算完成了。怎么樣,很簡單吧。下一次,會對這個最簡單的程
序進行分析,并給它增加一些功能。
--
這 是 最 后 的 斗 爭
THIS IS THE FINAL CONFLICT
※ 來源:·BBS 水木清華站 bbs.net.tsinghua.edu.cn·[FROM: 202.115.15.64]
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -