在Matlab中使用mex函数进行C/C++混合编程

      最近写了个Matlab程序,好慢呐……所以开始学习Matlab与C/C++混合编程。下面写了个测试代码,显示一个Double类型矩阵中的元素。

      源代码

#include "mex.h" void displaySubscript( const mxArray *pArray, mwSize index ); // 入口函数 void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { // 源文件名后缀为.c时,所有变量声明必须一次性完成,且放在最前面, 否则mex编译错误 // 源文件名后缀为.cpp时,没有上面的问题,...- -|| double *pData; mwSize i; // 输入参数必须为一个,且为double类型 if ( nrhs != 1 || mxDOUBLE_CLASS != mxGetClassID(prhs[0]) ) { mexErrMsgTxt( "输入参数不合法……" ); } // 获取数据指针 pData = mxGetPr(prhs[0]); // 遍历所有元素并打印到屏幕 for ( i = 0; i != mxGetNumberOfElements(prhs[0]); i++ ) { displaySubscript( prhs[0], i ); mexPrintf( " = %g/n", pData[i] ); } } void displaySubscript( const mxArray *pArray, mwSize

你可能感兴趣的:(课内学习,C/C++)