📄 6.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0054)http://passmatlab.myetang.com/matlab/matlabc1/m_c6.htm --><HTML><HEAD><TITLE>Matlab与C++接口与混合编程讨论小结(六)</TITLE><SCRIPT language=JavaScript src="6.files/pop-up.js"></SCRIPT><META http-equiv=Content-Type content="text/html; charset=gb2312"><META content="MSHTML 5.50.4522.1800" name=GENERATOR></HEAD><BODY text=#000000 bgColor=#ffffff><TABLE width="95%" border=0> <TBODY> <TR> <TD width="5%"> </TD> <TD width="92%"> <DIV align=center><B><FONT size=4>Matlab与C++接口与混合编程讨论小结(六) </FONT></B></DIV></TD> <TD width="3%"> </TD></TR> <TR> <TD width="5%"> </TD> <TD width="92%"> <P> </P> <P> 第二章、 </P> <P> 第五节、用c编写mex程序[五] </P> <P> 通过前面两部分的介绍,大家对参数的输入和输出方法应该有了基本的了解。具备了这 <BR>些知识,就能够满足一般的编程需要了。但这些程序还有些小的缺陷,以前面介绍的re 由于<BR>前面的例程中没有对输入、输出参数的数目及类型进行检查,导致程序的容错性很 </P> <P> #include "mex.h" void mexFunction(int nlhs, mxArray *plhs[], 讨论区 [Matlab]<BR>int nrhs, const mxArray *prhs[]) { double *inData; double *outData; int M,N; //异<BR>常处理 //异常处理 </P> <P> if(nrhs!=1) mexErrMsgTxt("USAGE: b=reverse(a)\n"); if(!mxIsDouble(prhs[0]))<BR>mexErrMsgTxt("the Input Matrix must be double!\n"); inData=mxGetPr(prhs[0]); M=m<BR>xGetM(prhs[0]); N=mxGetN(prhs[0]); </P> <P> void mexFunction(int nlhs, mxArray *plhs[], plhs[0]=mxCreateDoubleMatrix(M<BR>,N,mxREAL); outData=mxGetPr(plhs[0]); for(i=0;iM;i++) for(j=0;j</P> <P> 在上面的异常处理中,使用了两个新的函数:mexErrMsgTxt和mxIsDouble。MexErrMs<BR>gT xt在给出出错提示的同时退出当前程序的运行。MxIsDouble则用于判断mxArray中的数据 <BR>是否double类型。当然Matlab还提供了许多用于判断其他数据类型的函数,这里不加详 述。<BR>需要说明的是,Matlab提供的API中,函数前缀有mex-和mx-两种。带mx-前缀的大多是对 mx<BR>Array数据进行操作的函数,如mxIsDouble,mxCreateDoubleMatrix等等。而带mx前缀 的则大<BR>多是与Matlab环境进行交互的函数,如mexPrintf,mxErrMsgTxt等等。了解了这 一点,对在<BR>Apiref.pdf中查找所需的函数很有帮助。 至此为止,使用C编写mex函数的基本过程已经介绍<BR>完了。下面会在介绍几个非常有用的 函数调用。如果有足够的时间,也许还会有一个更复杂<BR>一些的例程。 </P> <P></P> <P></P> <P> </P></TD> <TD width="3%"> </TD></TR> <TR> <TD width="5%"> </TD> <TD width="92%"> </TD> <TD width="3%"> </TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -