重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
matlab中调用c语言函数:
成都创新互联主要从事成都网站制作、网站设计、外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务平山,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
#include "mex.h" //头文件必须包含mex.h
double mexSimpleDemo(double *y,double a,double b);
//C语言算法程序声明,在最后调用时,第一
// 个参数是返回结果
//c语言到matlab变换,以mexFunction命名
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
double *y;
double m,n;
//获取输入变量的数值大小
m=mxGetScalar(prhs[0]);
n=mxGetScalar(prhs[1]);
//获取输出变量的指针
plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);
y=mxGetPr(plhs[0]);
//调用子函数
mexSimpleDemo(y,m,n);
}
//C语言函数
double mexSimpleDemo(double *y,double a,double b)
{
return *y=(ab)?a:b;
}
matlab与C有接口,可以用C调用matlab,也可以用matlab调用C,或者用中间临时文件实现程序间的数据传输,但是不能像你这样通过matlab的m文件查看对应的C语句。
一般的程序语言都不是跨平台的,就像你说的这种matlab平台和C平台程序语句对应起来,这种对matlab和C是不可能的。
1.准备好C语言程序,清楚C语言的入口函数 2.编写mexfunction函数。mexfunction函数为C语言与MATLAB语言的接口函数。调用实例在mylinedetect.c文件中.在MATLAB中调用mex指令编译相关文件,将C语言编译为MEX文件。 3.编译完成后,生成mylinedetect...
呵呵,看来我们有研究相同的问题吧
matlab是一种科学的计算语言,采用的是解释执行的方式,在配置比较水的机器(比如说我的),运行起来速度不敢恭维,但是他适合工程师用,快速建立起自己的运算平台,很多语法是类似c语言。你可以考察一下matlab的安装目录下extern下面lib库中的函数,可以发现,有很多的c语言代码,实际上,其内核有很多c的成分。
所以你应该可以明白了,可以运行,但是要把matlab的库函数包含在c编译库中。
你完全可以在extern中的example中,在matlab环境下面运行几个c代码试一试,当然所采用的指令是mex(把c语言用于matlab中),mcc把matalb代码转化为c代码,一些具体的参数,你可以用matlab强大的help工具获得。我们还可以一起探讨一下啊,给各邮箱之类的吧,呵呵,很乐意的