?? mathtools597.txt
字號:
發信人: FangQ (木頭蟲子), 信區: MathTools
標 題: Matlab與C++接口與混合編程討論小結(八)
發信站: BBS 水木清華站 (Tue Nov 2 22:28:53 1999)
第二章、
第六節、用c編寫mex程序[六]
BBS水木清華站∶精華區
發信人: fasiondog (亂了), 信區: MathTools
標 題: 用c編寫mex程序 (part 6)
發信站: BBS 水木清華站 (Mon Apr 5 12:53:59 1999)
發信人: dodoo (好不好), 信區: Programming
標 題: 用C編寫mex程序 [PART 6]
我們之所以使用Matlab,很重要的考慮是Matlab提供了相當豐富的矩陣運算函數和各
種toolbox。在編制mex函數時,有時我們也會遇到一些操作,在Matlab下,只需要一個
為了在mex函數里調用Matlab命令,我們就需要用到一個函數mexCallMATLAB,原型如下:
int mexCallMATLAB(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[],
const char *command_name);
有了前面的基礎,使用這個函數就顯得十分容易了。下面給出一個例程,功能是將輸入
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
{
{
double *inData;
mxArray *IN[1];
mxArray *OUT[1];
double *outData;
int M,N;
int i,j;
//異常處理
if(nrhs!=1)
mexErrMsgTxt("USAGE: b=rot(a)\n");
if(!mxIsDouble(prhs[0]))
mexErrMsgTxt("the Input Matrix must be double!\n");
//計算轉置
if(mexCallMATLAB(1,OUT,1,prhs,"'"))
mexErrMsgTxt("Error when compute!\n");
//根據輸入參數數目決定是否顯示
if(nlhs==0)
mexCallMATLAB(0,IN,1,OUT,"disp");
else
plhs[0]=OUT[0];
plhs[0]=OUT[0];
}
關于這個例子,相信大家一看就明白,我就不多說了。
--
這 是 最 后 的 斗 爭
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 + -