一、首先要熟悉matlab所附带的C语言api
1、定义mexFunction函数,mexFunction的定义法唯一: 它只能是如下形式:
void mexFunction( int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[] )
其名称和参数类型不许有任何改变,在mexFunciton函数中可以调用你刚定义好的C++程序。
2、MATFile matOpen(const char *filename, const char mode)——打开/创建
3、MATFile matOpen(const char *filename, const char mode)——打开/创建一个MAT文件;
4、int matClose(MATFile *pMF)——关闭一个MAT文件;
5、mxArray *mxCreateDoubleMatrix(int m, int n, mxComplexity flag) ——创建一个(复)双精度矩阵;
6、`mxArray *mxCreateSparse(int m, int n, int nzmax,mxComplexity flag) ——创建一个稀疏矩阵;
7、mxArray *matGetNextArray(MATFile *pMF)——获得MAT文件里面下一个矩阵;
8、const char *mxGetName(const mxArray *pa)——获得矩阵pa的名称;
9、void mxSetName(mxArray *pa,const char *s)——为矩阵pa设置一个名称;
10、int mxGetM(const mxArray *pa)——获得矩阵pa的总行数;
11、int mxGetN(const mxArray *pa)——获得矩阵pa的总列数;
12、double *mxGetPr(const mxArray *pa)——获得矩阵pa的pr指针;
13、int *mxGetIr(const mxArray *pa)——获得稀疏矩阵pa的ir指针;
14、int *mxGetJc(const mxArray *pa)——获得稀疏矩阵pa的jc指针;
15、int matPutArray(MATFile * pMF, const mxArray * pA) ——把矩阵pA存储入MAT文件pMAF;
16、void mxDestroyArray(mxArray *pa)——释放矩阵pa(把它从内存中撤销);
二、例子(用C++模拟matlab矩阵相加add.cpp)
#include "mex.h"
#include<stdlib.h>
#include <string.h>
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double</