MATLAB中调用C语言函数


文章目录

      • 1.测试效果
      • 2.matlab调用c函数资料

1.测试效果
第一个例子
MATLAB官网调用C函数:https://ww2.mathworks.cn/help/matlab/matlab_external/install-mingw-support-package.html?searchHighlight=MinGW-w64 Compiler&s_tid=doc_srchtitle
1您可以通过编译 yprime.c 示例来测试 MinGW? 编译器。将源文件复制到可写文件夹。 copyfile(fullfile(matlabroot,‘extern’,‘examples’,‘mex’,‘yprime.c’),’.’,‘f’)
2 如果您在系统中仅安装了 MinGW 编译器,则 mex 命令会自动选择 MinGW。继续下一步。但如果您有多个 C 或 C++ 编译器,请使用 mex -setup 选择 MinGW。
mex -setup
3 编译该 MEX 文件。
mex yprime.c
4 MATLAB 将显示“编译工具”消息,其中显示了用于编译 MEX 文件的编译器。
运行函数。
yprime(1,1:4)
MATLAB中调用C语言函数
文章图片

第二个例子
参考MATLAB学习(五)MATLAB中调用C语言函数
1 在matlab中新建文件
#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=(a>b)?a:b; }

保存为mexSimpleDemo.c的文件
2 在matlab中输入
mex mexSimpleDemo.c
3 测试调用结果在matlab输入
a=mexSimpleDemo(5,3)
MATLAB中调用C语言函数
文章图片

2.matlab调用c函数资料
【MATLAB中调用C语言函数】下载资料:https://download.csdn.net/download/weixin_39249915/11293038

    推荐阅读