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