目标:简要介绍MEX文件与MATLAB之间的关系

文章目录

  • 目标:简要介绍MEX文件与MATLAB之间的关系
    • 1. 什么是MEX文件?
    • 2. MATLAB中什么时候会用到MEX文件?
    • 3. 如何在MATLAB中调用MEX文件?

1. 什么是MEX文件?

简单的说,MEX文件是类似于Windows中dll文件的一种MATLAB可以直接调用的封装函数的文件。MEX文件可以由C/C++,FORTRAN等编程软件编写,然后经过MATLAB的编译器处理可以形成MATLAB可直接调用的二进制文件。其本质是MATLAB与封装好的函数(其他语言编写的)进行数据交换。

2. MATLAB中什么时候会用到MEX文件?

我们知道,MATLAB实际上在处理循环过程时的速度是不及C语言的;另外,你所需要的某些功能可能没有相关的m文件,但是有C语言的代码。这个时候如果我们希望提高效率(程序的效率和编程的效率),我们会接触到MEX文件。

  • MEX文件可以帮助MATLAB程序更快的处理循环等其效率较低的程序部分,只需要将这部分程序功能用C语言编写成mexFunction函数,MATLAB便可以与其直接交换数据。将效率低的部分交由C语言来完成。更多关于如何编写C语言的mexFunction函数的内容,可参照:MATLAB的MEX文件编写和调试。
  • 如果有现成的C语言代码,但又想在MATLAB上实现其功能,有了MEX文件就无需再次改写C语言的内容为MATLAB的程序。可以给C语言函数编写mexFunction函数,把C语言部分的内容封装起来,直接与MATLAB进行数据交换,这样能提高程序本身的运行效率,也节省大量的重写程序和无脑的改bug的时间。可参照:把C程序写成MEX文件。

3. 如何在MATLAB中调用MEX文件?

如果现在已经写好相关C语言函数了,只需MATLAB中运行mex命令便可以将mex文件编译成可以直接调用的.mexw64(windows 64位系统)文件,如:mex TEST.c
编译好的文件可以直接像调用m函数文件一样调用他们,而且实际上mexw64文件的优先级比m文件优先级更高,这意味着如果你有两个同名函数如 test.m 和 test.mexw64 ,MATLAB只会调用 test.mexw64 文件。

总结: 对于有MALTAB和C/C++混编需求的小伙伴来说,MEX文件的机制简直不要太友好(真香啊~),对于掌握了MATLAB和(一些)C语言基础的同学,也可以大胆尝试一下。毕竟如果能有效提升程序运行效率,多学点总没有错。

*如果本文有帮助到你,欢迎点赞评论鼓励作者,为知识加油!

MATLAB中调用MEX文件相关的介绍相关推荐

  1. matlab 调用mex,从MATLAB中调用MEX中的C类方法

    AFAIK,没有简单的方法可以做到这一点,因为mexFunction接口相当扁平.但是,我可以想到一些不同的解决方法,可以让你接近.根据您的需求选择最佳的一个. >最简单的方法是在mex函数中创 ...

  2. matlab 如何调用mex文件,matlab调用mex文件报错

    尝试matlab调用c语言,已经编译出了.mexw32文件,无错误,调用此函数,matlab就崩溃,请大神帮忙看看吧! 提示错误如下: Stack Trace (from fault): [  0] ...

  3. Matlab中调用文件夹中子文件夹内.m文件的方法

    关于matlab中调用一个文件夹内所有的.m文件,包括其内的其他子文件夹内所包括的.m文件方法 问题:我们在经常打开一个.m文件,系统 默认为添加该文件夹,或者我们经常添加path中set path的 ...

  4. 在Matlab中调用Mathematica的函数

    Matlab与Mathematica都是目前比较好的数学软件,个人感觉Matlab比较偏应用,工程计算方面,而Mathematica比较适合数学推理,,理论比较重,个人最喜欢就是它的二维输入格式,比较 ...

  5. 如何在MATLAB中调用(运行)“用Python写成的函数或脚本”

    如何在MATLAB中调用"用Python写成的函数或脚本",首先要确保MATLAB知道咱们的Python解释器的位置在哪里. 如果安装了Python的时候把Python加入了系统环 ...

  6. m 文件 dll matlab 中调用_Java与MatLab混编

    该篇介绍Java与MatLab的混合编程 环境:Windows10,Jdk 1.8.0_261 64位,MatLab r2018b 64位 先安装MatLab MatLab安装 一.打开MatLab, ...

  7. 将keras训练好的神经网络模型生成独立于python环境运行的.exe文件并在matlab中调用(上篇)

    keras是深度学习简单易上手的python第三方库.在实际应用中,常常需要将keras训练好的深度学习模型生成独立于python环境的文件,供不会python的人或未安装python环境的设备调用. ...

  8. matlab blas加载错误,【求助】在MATLAB中通过MEX调用BLAS

    本人正在学习在MATLAB中调用BLAS,好不容易把MATLAB中的一个dgemm的例子编译通了,但是在MATLAB中使用这个函数时,不论输入是什么,输出都是0,很郁闷.请各位大牛多多指点! 以下是我 ...

  9. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

最新文章

  1. 《Python从小白到大牛》第4章 Python语法基础
  2. boost:进程管理
  3. 大数据处理——Hadoop解析(一)
  4. 编写 DockerFile
  5. HDU 1166 敌兵布阵
  6. mysql-Federated存储方式,远程表,相当于sql server的linked server
  7. having vs where
  8. 上位机服务器通讯协议,家庭监护终端与手机、上位机及服务器通讯协议22.doc
  9. TestNg测试框架使用
  10. 期货反向跟单的四大跟单禁忌
  11. [互联网]互联网公司的种类
  12. 如何把视频文件转换成图片
  13. 毕业设计:基于STM32的智能家居无线(蓝牙wifi)语音控制系统
  14. 设计模式——备份模式
  15. 2018届春招面试回顾(二)
  16. 自动驾驶IDM与MOBIL模型
  17. Critical dependency: the request of a dependency is an expression
  18. windows设置某应用开机自启
  19. 准双向口、推挽输出、开漏输出、高阻输入的区别
  20. C++开源游戏推荐,reshade游戏画质增强工具

热门文章

  1. ubuntu 星火商店
  2. 第37课 : Task执行内幕与结果处理解密
  3. android键盘状态机,单片机键盘扫描之状态机实现
  4. 《视频直播技术详解》之二:编码和封装、推流和传输
  5. 干货|最全PCB布线教程总结,14条PCB布线原则技巧,保姆级搞定PCB布线
  6. 可口可乐在中国推出可加热汽水姜汁可乐;喜茶开出在深圳第100家门店 | 美通企业日报...
  7. 头歌 第7章 函数2(课后习题8~12)第1关:习题8 椰子数
  8. 《JAVA》课程教学大纲
  9. 织梦二次开发写php,织梦二次开发所需php文件详解
  10. Unity3D 使用粒子组件实现花瓣飘落效果