標(biāo)簽(空格分隔): 學(xué)習(xí)筆記
MATLAB是矩陣語言,是為向量和矩陣操作設(shè)計(jì)的,一般來說,如果運(yùn)算可以用向量或矩陣實(shí)現(xiàn),其運(yùn)算速度是非常快的。但若運(yùn)算中涉及到大量的循環(huán)處理,MATLAB的速度的令人難以忍受的。解決方法之一為,當(dāng)必須使用for循環(huán)時(shí),把它寫為MEX文件,這樣不必在每次運(yùn)行循環(huán)中的語句時(shí)MATLAB都對它們進(jìn)行解釋。
要使用MATLAB編譯器,用戶計(jì)算機(jī)上應(yīng)用事先安裝與MATLAB適配的以下任何一種ANSI C/C++編譯器:
5.0、6.0版的MicroSoft Visual C++(MSVC)
5.0、5.2、5.3、5.4、5.5版的Borland C++
LCC(由MATLAB自帶,只能用來產(chǎn)生MEX文件)
下面是安裝與配置MATLAB編譯器應(yīng)用程序MEX的設(shè)置的步驟:
(1)在MATLAB命令窗口中運(yùn)行mex –setup,出現(xiàn)下列提示:
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n?
(2)選擇y,MATLAB將自動搜索計(jì)算機(jī)上已安裝的外部編譯器的類型、版本及所在路徑,并列出來讓用戶選擇:
Select a compiler:
[1] Borland C++Builder version 6.0 in C:/PRogram Files/Borland
[2] Digital Visual Fortran version 6.0 in C:/Program Files/Microsoft Visual Studio
[3] Lcc C version 2.4 in D:/MATLAB6P5P1/sys/lcc
[4] Microsoft Visual C/C++ version 6.0 in C:/Program Files/Microsoft Visual Studio
[0] None
Compiler:
(3)選擇其中一種(在這里選擇了3),MATLAB讓用戶進(jìn)行確認(rèn):
Please verify your choices:
Compiler: Lcc C 2.4
Location: D:/MATLAB6P5P1/sys/lcc
Are these correct?([y]/n):
(4)選擇y,結(jié)束MATLAB編譯器的配置。
在上述代碼中,mexFunction是matlab調(diào)用c語言的接口函數(shù),函數(shù)的輸入時(shí)固定的,int nlhs表示左邊參數(shù)的個(gè)數(shù),這在matlab中是輸出的個(gè)數(shù), mxArray *plhs[]用來存放輸出,新建是必須用矩陣的形式新建,如果輸出只是一個(gè)數(shù)的話,也需要新建一個(gè)1*1大小的矩陣;同理,nrhs是輸入的個(gè)數(shù), mxArray *prhs[]用來存放輸入。 對于輸入,首先調(diào)用mxGetPr(prhs[])函數(shù),獲得輸入的入口指針,第一個(gè)輸入為 mxGetPr(prhs[0]),第二個(gè)輸入為mxGetPr(prhs[1]),以此類推。如果右側(cè)輸入是一個(gè)數(shù)的話,可以采取下述形式
初次使用matlab的mex時(shí),需要配置mex。在matlab參數(shù)行中輸入mex -setup然后按照提示一步步配置完成后。輸入mex ++++.cpp(需要mex的C語言文件名),之后就可以非常愉快的當(dāng)做matlab的一個(gè)內(nèi)置函數(shù)輕松調(diào)用了。
新聞熱點(diǎn)
疑難解答