内容发布更新时间 : 2025/3/4 12:32:51星期一 下面是文章的全部内容请认真阅读。
这个是我写的一篇关于MATLAB课程的作业,作业已提交。所以,ChenGuangda老师看到了请不要以为我的作业是从网上抄的,哈哈。
0.背景
MATLAB作为一款功能强大、效率高、交互性好的可视化高级计算机语言,在数值计算、自动控制、数字信号处理、图形处理、仿真、神经网络、小波分析等各个领域有着广泛的应用。虽然MATLAB是一个完全独立的编程和数据运算的集成环境使用它可以很方便地做很多工作,但是,很多时候仅仅依靠MATLAB环境还是不能很好地完成工作,例如一个大的项目中需要使用到MATLAB中很容易实现而且很有些的功能时,如果这个时候使用特定语言开发,将会是一个费时费力的事情,而且稳定性、效率方面都不如MATLAB好;或者,其他语言编写的优秀程序,如果想在MATLAB中使用,就要重写M文件,造成了人力和物力的浪费,所以MATLAB和其他程序之间的数据交换就显得十分必要,MATLAB程序接口的出现,就解决了这些问题,通过接口与其他编程环境交互,各取所长,充分发挥MATLAB计算的优点,而避开MATLAB效率低的问题。
1.MATLAB的接口
MATLAB提供了多种编程语言的接口,通过微软的组建对象模型
(Component Object Model,COM)完成外部程序、客户端和服务端之间的通讯和数据共享,这些功能的实现都是使用了MATLAB的应用程序接口(Application Program Interface,API)来实现的。
下图是MATLAB提供的接口。
MATLAB使用自身强大的编译器可以将MATLAB的应用程序编译为一个独立的程序(.exe)或者组件(.dll),这些组件又能够被Fortran、C、C++等高级语言调用,实现了和其他程序之间的交互;通过使用MATLAB Builder EX,将MATLAB的函数打包为组件,这样就能够能被Excel使用;通过使用MATLAB Builder JA,可以由MATLAB程序创建Java语言中的类,这些类完全可以在没有安装MATLAB的桌面计算机或者网络服务器上运行。通过使用MATLAB Builder NE,将MATLAB函数封装入.NET中类的方法,这些类就可以像其他托管代码一样被.NET环境下的所有语言调用,例如C#、VB.NET、J#、C++.NET、F#等语言,甚至是网络程序也可以调用,例如ASP.NET。
2.外部语言的选取
由上节可见MATLAB的编程接口是相当丰富的,这里就.NET方式讨论,使用.NET的接口有如下几个优点:
代码安全。作为托管代码,不会出现指针带来的问题,这就保证了程序的稳定性
容错机制。C#中具有异常处理方法,因此即使程序在运行中出现了错误,也能从故障中快速恢复,或者提供较好的摆脱异常的方法,而不是像其他程序那样造成程序崩溃。
面向对象。通过将函数打包为一个类的方法,实现了完整的面向对象编程,方便了代码的阅读和管理,并能够实现面向对象中的重载、继承、多态等功能。
2.1什么是.NET
.NET的定义,根据微软官方的描述:
.NET is a \, built on open Internet protocols and standards, with tools and services that meld computing and communications in new ways\。.NET 是微软公司的一组软件技术,用来连接信息、人、系统和各种设备。它通过使用 Web Services 技术来获得软件的高度集成。除了将小型的、分散的、构建模块应用互相连接起来,还将 Internet 上的更大应用连接起来。微软总裁兼首席执行官Steve Ballmer把它定义为:.NET代表一个集合,一个环境,一个可以作为平台支持下一代Internet的可编程结构。
.NET的核心部分是.NET Framework,这是一组框架,是.NET的核心支持库,.NET Framework提供CLR(公共语言运行时)提供了对各种程序的支持,通常将在CLR的控制下运行的代码,称为托管代码(managed code)。使用.NET开发的程序需要在.NET Framework下才能运行,就像VB的程序需要VB运行库,java程序需要JVM(Java虚拟机)一样。下图是.NET Framework的架构: