📄 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 + -