首页 > 其他分享 >matlab的mex文件作用

matlab的mex文件作用

时间:2023-01-11 23:24:43浏览次数:30  
标签:文件 mex matlab 编写 MEX MATLAB

文章目录
前言
一、MEX的介绍
二、MEX的编写
总结
前言
MEX文件是一种可在matlab环境中调用的C语言(或fortran)衍生程序,mex的编译结果实际上就是一个带输出函数mexFunction 的dll文件。

MEX从字面上是MATLAB和Executable 两个单词的缩写。

一、MEX的介绍
MEX文件的后缀名按32位/64位分别为 .mexw32/.mexw64。如下图所示。
MEX文件是由C或Fortran语言编写的源代码,经matlab编译器处理而生成的二进制文件。说白了就是编译器编译生成的二进制文件。一种接口文件。

MEX文件其实是其它语言与MATLAB的接口,通过MEX文件可以在MATLAB中像调用内嵌函数一样调用使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能提高MATLAB环境中数据处理的效率。

注意: MATLAB的指标从1开始,C的指标从0开始。

生成的.mexw64文件一定要放在MATLAB空间中,就是那个目录下面,确保可以被调用到。


二、MEX的编写
2.1 编写MEX程序的编辑器
1.使用MATLAB的代码编辑器,2. C++编辑器,如VS之类。
它把在Matlab中调用函数时输入的自变量通过特定的接口调入了C函数,得出的结果再通过该接口调回Matlab。该特定接口的操作,包含在mexFunction这个函数中,由使用者具体设定。

将C文件转换为MEX文件: mex ex1.c
使用命令:mex

数据输入输出操作
C文件组成

入口子程序mexFunction( int nlhs, mxArray plhs[], int nrhs, const mxArrayprhs[] ) 参数含义为:
nrhs:为输入参数的数目。
prhs:为输入参数数组,是指针数组。
nlhs:为输出参数的数目。
plhs:为输出参数数组,是指针数组
计算功能子程序:包含所有的实际需要完成的功能源代码,可以是用户以前所编写的算法和程序,以函数的形式存在
必须包含mex.h库:#include”mex.h”

总结
注意: 我们对输出和输入参数的操作都是通过指针的方式进行的。(这点很容易理解,因为我们的计算结果是需要传递给MATLAB的,实际上我们传递的不是数据,而是指针。MATLAB可以通过这些指针,访问内存中的数据。)

http://t.csdn.cn/WCDKx
http://t.csdn.cn/C4rpT
————————————————
版权声明:本文为CSDN博主「Jory&W」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52135350/article/details/127351126

   

标签:文件,mex,matlab,编写,MEX,MATLAB
From: https://www.cnblogs.com/matlab-comsol/p/17045170.html

相关文章