C++和MATLAB比较
经常会有人问,是先学习C++好还是先学习MATLAB好呢?这也是一个很让人纠结的问题,两者各有千秋。大二一年里我也学习了这两门课,我首先学习的是C++,然后在学习MATLAB的,这是根据课程的安排,下面我就来谈谈我个人学习了这两门课之后的感受吧。
其实C++和MATLAB两者之间有很多的相同之处,也有很重要的区别,首先从宏观意义上来讲,C++主要是编程,和 C 语言、JAVA等等是同一类东西,而MATLAB主要是数据处理,就是说在日常生活中遇到的一些比较复杂或者说工作量很大的问题、数据之类的东西,我们就可以通过在MATLAB上编辑程序来解决这些问题,但是如果一个人在编写MATLAB的程序,我们通常情况下不会说他在编程,因为那样会被别人误解为是在编写C++之类的东西,实际上我们是在解决一些实际问题。所以说C++和MATLAB之间也是有很大的区别的。
既然谈到了C++,我也顺便说一下JAVA,其实说实话,我本人对于JAVA也不是太了解,没有专门的学习过,准备大三攻克它,但是我在网上查看了很多相关资料。据我了
解,C++、JAVA都是完整的通用平台的语言。通俗的说,就是我们可以用它们来编写任何程序并且可以在大部分硬件系统和操作系统中进行操作运行,其实,C++、JAVA都是在C语言基础上发展起来的,在表达形式上三者很相似。目前,C++、JAVA和MATLAB这三种语言是当今三种最为主流的程序设计语言,但是从相对而言,C++和JAVA都是主流的面对对象的程序设计语言,简单的说,是以数据为中心进行编程。MATLAB也会涉及到一些对象元素,但是MATLAB更加注重的是整个过程。MATLAB的语言是一种解释型的高级语言,它包含了自己的数据结构、程序流控制以及文件输入输出等功能。MATLAB语句可以在MATLAB控制窗口中直接执行的,也可以采用脚本(script)*.m文件盒函数(function)*.m文件的形式来实现。MATLAB是目前使用最广泛的科学计算的软件,在这个软件上我们可以用于编写计算程序的语言,这个过程我们也叫MATLAB。所以它也不仅仅是通用编程语言,只适用于科学计算,而且只能用在MATLAB软件上的。C++是编译型的高级语言,它包含了全局变量、结构、枚举、联合等等一系列源于C语言的概念,从而包含了面向对象和面向过程的双重概念,相对于JAVA呢,JAVA则是属于解释型的高级语言,而且兼容性很好,但是效率可能会低一些,具体情况我不太清楚,还得进一步探究。另外,更
为重要的一点就是,素偶偶的JAVA程序都是由类或者说是类的定义组成的,所以说,JAVA是一种完全的面向对象的语言。JAVA中没有独立的类声明,只有类定义。JAVA中的所有的方法都是在类的主体定义的,但是C++并非如此,在JAVA中我们必须将函数的定义置于类的内部,这种精致在类外对方法定义的规定和JAVA的完全面向对象特性是完全吻合的,JAVA提供了与C++类似的构造函数,但是在JAVA中没有拷贝函数,因为所有自变量都是按引用传递的。对于MATLAB来说,它本身就是用C语言来时间的,为了生成可执行的代码,MATLAB开发了针对C/C++的数学函数库很Complier。MATLAB的特点就是他能够将矩阵作为基本的储存单元。MATLAB的算术符对于矩阵运算时非常方便的,可以大致将其分为针对数值阵列元素和针对数值阵列整体的两类数学运算符。其中针对数值阵列元素的数学运算符的运算方法可以理解为是数值阵列的单个数学元素逐个按顺序进行运算的运算符,而针对数值阵列整体的数学运算符的运算对象则是数值阵列整体。记得老师给我们上第一节课就说过,MATLAB的中文含义就是“矩阵实验室”。可想而知矩阵对于其的重要性,MATLAB里的数据存储的基本单元就是矩阵,即使是一个数,在其内部也是把它看做是一个矩阵。对于储存在MATLAB变量中的值都属于一个类,这些值不仅包括你可能通常会考虑的对象,
如时间序列或者状态空间对象,也包括双精度数。所有的MATLAB数据类型都是具有面对对象编程中的类的功能。MATLAB数据类型的建立是在运行时并不是在编译时,通过调用class函数来将对象注册到类。方法调度也不想C++或者JAVA中的那样以语法为基础,当参数列表中包含优先性相同的对象时,MATLAB用最左边的对象来选择要调用的方法。在MATLAB中,没有与析构函数相当的方法,如果你想要将某变量从工作空间中清除的话,那么你就可以使用clear函数来实现。对于我们这些初学者来说,如果我们想学好一门编程语言的方法就一个—个地大量地编程,当我们书上的题目做会之后,还要尽可能地参与实际的项目,去尝试着解决一些实际的问题,这样才是最好的锻炼自己编程思想的方法,这样我们以后才能够应付更多的实际问题。
C++和MATLAB作为计算机专业要求掌握的两门计算机语言,在我们的课程结构和今后实际使用中都占据十分重要的地位。C++可为单片机的使用打下计算机语言基础,MATLAB则作为信号处理、自动控制、图像处理等课程的实验仿真的重要工具。由于两者都是计算机语言,在基本的语法方面具有相似之处。但毕竟两门语言的开发环境不同,在一些具体的语法方面会有所不同,某些符号在两门语言中可能代表不同的运算。我们一般相继学习这两门语言,很容易对这两门语言的语法发生混淆,例如把C++的语法用在了MAT
LAB上,程序运行错误而不知道错误的原因。因此,我们把这两门语言一些基本的语法点做出比较显得较有实际意义,也能为学习提供参考,避免在编程方面出现低级错误。另外对于语法结构方面,C++对程序的结构也有十分严格的规定,在主程序中,首先必须通过编译指令#include嵌入包含输入输出信息的头文件iostream,具体形式为#include,同时要求加入针对命名空间的指令“using namespace std;”,接着编写以main作为函数名的主函数。经过我查询了大量的资料,了解到MATLAB7.0和以前的版本有很大的区别,相对以前的版本,MATLAB的编译器在很多方面都发生了很大的变化。其中,最大的变化就是MATLAB的编译器不再是hi将MATLAB程序直接编译成C++代码,而是只生成MATLAB程序的接口文件,MATLAB程序则直接交给了MCR来执行。新的MATLAB编译器构架形成了新的MATLAB与C++混合程序设计特点。在C++程序中无论采用哪种调用方式调用MATLAB程序,最终的结果都是用MCR来执行MATLAB程序的。由于MATLAB编译器只生成MATLAB接口文件,而MCR接口一般会采用兼容设计,因此,与MATLAB6.5及以前的版本软件相比,用户开发C++混合程序设计的复杂度降低,可继承性提高了很多。正因为采用了MCR执行MATLAB程序而不是将MATLAB程序编译为C++程序,MATLAB函数和工具箱中可以编译的部分大大的增加了,为用
matlab学好了有什么用户开发混合编程提供了方便。正所谓“万变不离其宗”,虽然说MATLAB编译器的架构发生了很大的变化,但是MATLAB与C++混合程序设计还是继承了原有的思路。读者在应用中可以更加自己的需求选择MALTAB调用C++程序、将MATLAB程序编译为独立可执行文件、C++程序调用MATLAB程序编译后的动态链接库以及C++程序调用MATLAB程序编译后的COM组件等方式进行。C++调用MATLAB程序用户可以选择调用MATLAB程序编译后的动态链接库或者MATALAB程序编译后的COM组件,这两种调用方法的执行效率是相同的。动态链接库方式实现起来比较简单,COM组件方式实现起来比较复杂。除此之外,C++可以通过MATLAB直接执行MATLAB程序,但是这种方式不能够脱离MATLAB环境的执行。MATLAB与C++混合程序设计的方法各有千秋,具体应用还得结合开发者的具体情况进行玄子。但是无论使用哪种方法,MATLAB的数据结构与C++的数据结构之间的相互访问和转换都是混合编程的关键,这一点是非常重要的一点。
虽然目前无论对于C++还是MATLAB我都还只是个入门级的小罗罗,但是我总是渴望学习到更多知识,所以我经常会上网搜集大量的资料来弥补漏洞,通过写完这篇文章,我发现我对于C++、JAVA和MATLAB的区别有了更加深入的了解,注意到了很
多关键的点,虽然对于JAVA还不是那么的熟悉,但是我已经把它作为下一个目标,俗话说的好“活到老,学到老”,我还会永远的继续下去我的学习,毕竟学无止境。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论