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学习(五)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)
在这里插入图片描述

2.matlab调用c函数资料

下载资料:https://download.csdn.net/download/weixin_39249915/11293038

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值