MATLAB与C语言的异同MATLAB是一种科学计算软件,也是当今最优秀的科技应用软件之一,专门以矩阵的形式处理数据。
它以强大的科学计算和可视化功能,简单易用、开放式可扩展环境,特别是所附带的三十多种面向不同领域的工具箱支持,使得它在许多科学领域成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
它作为一种计算工具和科技资源,可以扩大科学研究的范围,提高工程生产的效率,缩短开发周期,加快探索步伐,激发创作灵感。
作为一种计算机语言,一种用于科学工程计算的高效率的高级语言,MATLAB具有其他高级语言难以比拟的一些优点:编写简单、编程效率高、易学易懂。
与其他语言相比,MATLAB 的语法更简单,更贴近人的思维模式。
因此,MA TLAB语言也被通俗地称为“演算纸式”的科学计算语言。
在控制、通信、信号处理及科学计算等领域中,MA TLAB都被广泛地应用,已经被认可为能够有效提高工作效率、改善设计手段的工具软件。
而C语言是一种面向问题的程序设计语言,也是目前国际上流行的一种结构化的程序设计语言,语言处理程序采用的是编译程序。
它既有高级语言的特点,又具有汇编语言的特点。
它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛,深受广大程序设计者的欢迎。
在操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。
同时,它也是是数值计算的高级语言。
C语言具有如下特点:1. 简洁紧凑、灵活方便C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来, C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2. 运算符丰富C的运算符包含的范围很广泛,共有种34个运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3. 数据结构丰富C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。
能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。
另外C语言具有强大的图形功能, 支持多种显示器和驱动器。
且计算功能、逻辑判断功能强大。
4. C语言是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格,程序设计自由度大虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低10へ20%。
8. C语言适用范围大,可移植性好C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
虽然MATLAB与C语言都有编程的功能,但是二者在编程方面存在许多不同的地方。
数据类型MATLAB的数据类型有常量、变量、字符串、复数等,C语言则有常量、变量、标识符、整型数据、实型数据、字符型数据等。
可见,C语言的数据类型的划分要比MATLAB的细致。
而且,相同的数据类型在这两种语言中的定义及用法也有所不同。
在常量方面,值得一提的是,MATLAB中复数类型常量可以直接写成手写格式,这是MATLAB与其他计算机语言的明显不同之处。
C语言的常量可以是任何基本类型的值,就范围而言,C语言的常量范围要较MATLAB的大。
在变量方面,二者的变量名的规定有明显不同。
MA TLAB的变量名必须是不包括空格的单个词,且区分大小写。
变量名的字符数也有限制,最多不超过31个字符。
变量名必须以字母打头,之后可以是任何字母、下划线或者数字。
另外,许多标点符号在MATLAB中有特殊含义,变量名不允许使用。
此外,MATLAB中还有一些默认的特殊变量,它们有确定的形式和意义,使用时应加以注意。
如:ans是用于结果的默认变量名,pi表示圆周率等。
与之对比,C语言的变量名的规定就比较统一、规范。
其对不同的数据类型有各自特定的变量名,如int代表整型变量,代表float单精度实型变量,double则是双精度实型变量,char是字符型变量的变量名。
在字符串方面,MATLAB中的字符串是由单引号括起来的简单文本,一般是ASC Ⅱ值的数值数组,以它作为字符串表达式进行显示。
因为字符串是数值数组,所以它们可以用MATLAB中所有可利用的数组操作工具进行操作。
而C语言中的字符串常量是用一对双引号括起来的字符序列,可以由任意多个字符组成。
值得注意的是,为了能在C语言中正确地处理字符串常量,C语言规定:“在每一个字符串的结尾都加上一个字符‘\0’,作为字符串的结束标志。
”这样,C语言中字符串在内存中的字符个数要比实际表达式中的字符数多1个。
在复数方面,MATLAB最强大的功能之一就体现在此,如前面所言,MA TLAB 对复数不需做特殊处理,它的复数类型常量可以直接写成手写格式。
MATLAB认识复数,并用预定义变量和作为虚数单位,而且复数的数学运算可以写成与实数相同的形式。
而对于C语言,它则无法做到,需要对复数进行特殊处理。
总的来说,C语言的数据类型划分得比较细致,相比较而言,MA TLAB就“粗糙”一些,这与二者各自所具有的和侧重的功能有关。
C语言用于编制系统程序和其他应用程序,所要处理的量范围多,数量广,故而其对数据类型必须细致划分。
而MATLAB 用于编程时涉及到的主要是具体的工程方面的实际问题,接触到的量的范围相对小些,因而就可以不必划分得十分细致了。
表达式在MA TLAB中,书写表达式的规则和“手写算式”几乎完全相同。
表达式由变量名、运算符和函数名组成,按照与常规相同的优先级从左至右执行运算。
C语言的表达式分为算术表达式、赋值表达式和逗号表达式等。
优先级由高到低是:()、单目+和单目-、*、/和%、+和-。
运算符如前面所言,C语言的运算符非常丰富,主要有算术运算符、关系运算符、逻辑运算符与按位运算符等。
此外,还有一些完成特殊任务的运算符。
并且,C语言中算术运算时,结果的显示类型与运算符两边的数据类型有关。
如:7/2的结果为3,7.0/2.0的结果为3.5。
有些运算符对参与运算的量的数据类型还有特定要求,如求余运算只能在两个整型数据之间进行。
相反的,MATLAB的运算符就比较简单。
值得注意的一点是,MATLAB中用左斜杠或右斜杠分别表示“左除”或者“右除”运算。
对标量而言,两者的作用没有什么区别,但对于矩阵而言,两种运算将产生不同的结果。
C语言中就不存在这种情况,除法运算用左斜杠表示。
函数MATLAB的函数库是非常丰富的,有数组函数、矩阵函数、关系函数和逻辑函数等。
作为一种科学工程计算语言,其提供的数学计算函数较多。
在数组计算中,针对标量的一些基本函数,如三角函数、对数函数、指数函数和复数运算函数等,都能运用于数组计算。
MATLAB除了支持传统的数学运算外,还支持关系和逻辑运算。
MATLAB更突出的优点是其提供了许多工程计算中所需的一些特殊函数,满足了科技工作者的需要。
C语言提供的函数在数量上比不上MATLAB,而且一些特殊的函数没有提供,这就使得MATLAB在诸多工程运用领域的显示了超强的功能和优势。
总的来讲,MATLAB与C语言所具有的功能是不同的。
C语言精于编程,而MATLAB 的功能则是多方面的。
可以说C语言是一名编程的“专业选手”,MATLAB则是一个“全能人才”。
MATLAB的基本功能如下:(1)数学运算功能。
它包括矩阵运算和数值分析算法等。
(2)2D和3D图形显示功能。
(3)交互式的高级编程语言—M语言编程功能。
(4)工具箱函数功能。
(5)编译功能。
使MA TLAB能够同其他高级编程语言进行混合应用,取长补短,以提高程序的运行速率,丰富程序开发的手段。
(6)Simulink仿真功能。
它的建模范围广泛,提供了丰富的功能块及不同的专业模块集合。
(7)Stateflow交互式设计功能。
(8)自动代码生成功能。
通过近一段时间的学习,我印象比较深刻的是MATLAB强大的图形绘制能力。
MATLAB的图形绘制能力包括二维绘图和三维绘图两大部分。
其中,二维绘图可以实现图标绘制、科学曲线绘制和各种专业数据的可视化显示。
三维绘图可以表示向量场的数据及图形表示二元函数等。
MA TLAB强大的绘图功能满足了工程设计所需的各种不同的直观表达的需要。
C语言作为如今最广泛使用的编程语言,许多应用程序都建立在其基础上,因此C 语言在某种程度上是学习其他一些语言和程序的基础。
一般来讲,C语言主要是用于底层设计的,即编制应用程序。
诚然,C语言也具备一定的图形绘制能力,但是与MATLAB 比较起来,那也只能是小巫见大巫了。