文章目录
- 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学习(五)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函数资料
【MATLAB中调用C语言函数】下载资料:https://download.csdn.net/download/weixin_39249915/11293038
推荐阅读
- 最优化问题|改进交叉算子的自适应人工蜂群黏菌算法
- matlab|嵌入均衡池的黏菌优化算法
- 最优化问题|加入领导者的黏菌优化算法
- MATLAB图形界面|基于Matlab的汽车出入库计时计费系统
- Matlab旅程|MATLAB的结构化程序设计
- matlab 内存管理 清理内存
- matlab中使用colormap没有效果
- Matlab|圆柱绕流
- MATLAB|Splart-Allmaras湍流模型及MATLAB编程~
- regionprops统计被标记的区域的面积分布,显示区域总数。