MATLAB实现了与众多外部程序和设备的借口:
通过MEX文件的建立,MATLAB能够调用C、C++、FORTRAN等程序设计语言的子程序;通过使用MATLAB引擎,可在C、C++、FORTRAN程序代码中直接调用MATLAB中的函数与命令;通过MATLAB C/C++数学函数库直接实现C/C++与MATLAB的混合编程,并建立可独立运行程序;通过MATLAB提供的串口借口,可以实现从外围设备(如MODEM)直接输入数据到MATLAB工作空间,再利用MATLAB进行处理。
1. MEX文件
MEX文件是MATLAB一类外部程序调用接口,可以在MATLAB中像调用MATLAB内建函数一样调用C、C++、FORTRAN等语言编写的子程序,而无需将它们重新编写为MATLAB的M文件,从而使资源得到充分利用。MEX文件有以下一些用处:
2. MATLAB引擎
如果说mex文件是为了在MATLAB中调用c/c++和fortran编写的子程序,那么MATLAB引擎既是为了在c/c++和fortran程序中能够调用MATLAB。MATLAB计算引擎是一组允许在别的应用程序中与MATLAB交互的函数库和程序库。在调用的过程中,MATLAB引擎函数库在后台工作,MATLAB通过它与别的应用程序进行通信。通过MATLAB计算引擎可以完成以下功能:
3. MATLAB C/C++ 数学函数库(matlab library)
matlab 6.x中不仅包含了与c的接口,而且也包含了与c++的接口,因此完全可以采用面向对象编程的方式来编写程序。同matlab与c的接口一样,可以用 c++语言来编写mex文件,也可以调用matlab c/c++数学函数库,并编译生成可独立运行程序。matlab c/c++数学函数库包含了大量的内建数学函数以及在matlab中被声明为m文件的数学函数。
MathWorks公司提供的matlab c/c++数学函数一方面可以使matlab程序员能够利用已有的编写m函数的经验,花费很小的代价,利用该数学函数库来编写类似于matlab m文件的代码,改代码编译后会有更块的运行速度,且能够独立matlab解释器而运行。另一方面,c++程序员需要一种方便、快捷的矩阵数学含糊苏。对于 c++程序员来说,该数学函数库提供了一个自然而又牢固的编程接口、大量的功能强大的矩阵计算和处理函数,可以使c++程序员方便地应用matlab提供 的矩阵运算和处理能力,从而大大提高程序的执行效率。此外,还对程序员隐蔽了大量便车个细节,可以使程序员用一种简单直接的语法去编程,而无需考虑调用函 数的实现过程。
4. MATLAB编译器(Compiler)
matlab编译器(Compiler)是matlab环境下的编译工具,他能将m文件转化为c或c++等不同类型的源代码,并在此基础之上根据需要生成 mex文件(.dll文件)、可独立运行的应用程序(.exe文件),从而大大提高代码的执行效率。尤其是可独立运行的应用程序文件,不需要matlab 环境支持,甚至没有安装matlab也能运行。与matlab engine、mex文件相比,他们大大扩展了程序的应用范围。同时,编译器对m文件编译后,运行速度提高了约33%,另一方面隐藏了程序算法,提高了保 密性。
使用matlab编译器,也可以将c/c++源代码编译成可独立运行的应用程序,在这些c/c++源代码中,可以使用matlab提供的接口函数轻松的利用matlab的矩阵运算功能、作图功能来维用户服务。
matlab编译器以m文件作为输入,产生c/c++源代码或p-码作为输出。matlab编译器能产生以下这些源代码:
5. 串口接口
在MATLAB中,用户可以通过计算机的串口接口来和外围设备(如MODEM,示波器,打印机等)进行通信,甚至可以把计算机作为中介在两台外围设备之间进行通信。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删