Matlab调用C语言程序简单实例
matlab的功能强大,不仅仅因为matlab的强大的函数库和验算本式的计算方式,更重要的是因为他有强大的接口。
今天,我才抄着写出了一个自己的运行在matlab中的C程序,是书上原来的例子。但是,知道可以调用的惊奇还是十分令人愉快的。
我在matlab的自带编辑器中输入如下代码,并保存为fact.c,存在系统工作目录中。
#include "mex.h"
void mexFunction (
int nlhs,mxArray *plhs[],
int nrhs,const mxArray *prhs[]
)
{
double n,j,*p;
int i;
n=mxGetScalar(prhs[0]);
plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);
p=mxGetPr(plhs[0]);
j=1.0;
for(i=n;i>1;i--)
j=j*i;
*p=j;
}
这仅仅是一个求阶乘的简单的例子。
然后,我在matlab中输入>>mex fact.c
如果没有错误,一切都将十分正常,然后,我输入
>>y=fact(5)
将输出y=
120
这个例子十分简单,但是,事实说明了matlab的接口调用也不是高不可测的,只要有心,很快就可以上手的。 |