下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab与C+的对比1前言C+和Matlab是我们已经学习过的两门计算机语言,在数学领域上的基本使用中占有十分重要的地位。C+为我们数学更好的解析和掌握打下了基础;matlab是为了解决问题(学术性的、工程上的),得到一个最终(或可优化)的结果,结果可能是一串数字,加以解释则能得到强大的作用。而C+与Matlab本质上的区别是在于C+存在全局变量、结构、枚举、联合等一系列源于C的概念,包含了面向对象和面向过程的双重概念,Malab的特点则是它讲矩阵作为基本存储单元。Matlab里数据存储的基本单元是矩阵,即使一个数内部也是看做一个矩阵。存储在Matlab变量中的值都属于一个类。这些值不仅包
2、括你可能通常会考虑的对象,如时间序列货状态空间对象,也包括双精度数。所有的Matlab数据类型都具有面向对象编程中的类的功能。由于两者都是计算机语言,在基本的语法方面具有相似之处。但毕竟两门语言的开发环境不同,在一些具体的语法方面会有所不同,某些符号在两门语言中可能代表不同的运算。学生一般相继学习这两门语言,很容易对这两门语言的语法发生混淆,例如把C+的语法用在了Matlab上,程序运行错误而不知错误原因。因此,把这两门语言一些基本的语法点做出比较显得较有实际意义,也能为学习提供参考,避免在编程方面出现低级错误。2 Matlab与C+的介绍Matlab是Mathworks公司推出的数学软件,它
3、将数值分析、矩阵计算、信号处理和图形显示结合在一起,包含大量高度集成的函数可供调用,命令语句功能十分强大,为科学研究、工程设计及众多学科领域提供了一种简洁、高效的编程工具。但是Matlab使用的是解释性语言,大大限制了它的执行速度;源代码的公开不利于算法和数据的保密;局限于Matlab运行环境而不能用于开发商用软件。VisualC+是Windows平台下主要的应用程序开发环境之一,它能方便实现软件开发,开发的系统具有界面友好、执行速度快、易维护和升级等优点。但是在工程计算方面,和Matlab相比编程显得复杂的多。因此实现Matlab混合编程,使两者结合起来,协同工作,必将提高软件开发效率,使所
4、开发的软件具有更高的性能,更大的应用范围,也可以为科学研究和工程技术提供更强的技术支持。3 数据类型的对比C+的基本数据类型有bool(布尔型)、char(字符型)、int(整型)、float(浮点型,表示实数)、double(双精度浮点型,简称双精度型)。除了bool型外,主要有两大类:整数和浮点数,其中有关键字signed(有符号数)和unsigned(无符号数),short(短数据型)和long(长数据型)作为修饰符。bool型数据也称为逻辑型数据,取值只能是false(假)或true(真)分别以0和1表示。Matlab内部只有一种数据格式,即双精度(64位)二进制,Matlab作运算和
5、存储时都用双精度格式2。无论什么时候将一个数值赋予一个变量名,Matlab将自动创建一个double型变量。如果需要改变变量的类型,可以通过format指令改变数据显示的格式4 运算符的对比C+和Matlab都提供了加减乘除等基本算术运算符、赋值运算符、大于小于等关系运算符以及与或非等逻辑运算符,具体差别如表1-2所示。基本算术运算符与赋值运算符的比较加减乘除取余赋值C+Matlab/%mod或rem关系运算符与逻辑运算符的比较大于小于大于等于小于等于等于不等于与或非异或C+>V>=V=!=&&|!Matlab>V>=V=&&|xor、,
6、、.一sV注意,在C+中,“%”只能用于整形操作数;当“/”用于两整形数据相除时,其结果取商的整数部分,小数部分被自动舍弃。同时C+中有自增(+)与自减(-)两个运算符,有“+=,-=,”等10种复合运算符,这是Matlab中没有的。需要区分的是在C+中,逻辑非用“!”表示,Matlab中则用“”表示。另外,在C+中,"”表示异或;但在Matlab中,“人”表示乘方,例如aA2表示a2。5 变量的声明与初始化的对比C+中,变量在使用之前必须先声明其类型和名称,具体形式如下:数据类型变量名1,变量名2,在定义一个变量的同时,也可以给它赋初始值,例如“inta=3;”,声明了一个整型的变
7、量a并赋予初值为3。如果需要计算y=3x,当x=1时的y值,可通过以下语句计算:intx=1,y;y=3*x;Matlab中使用变量前不需要先声明,只需要直接赋值给变量即可。需要注意的是,在C+中,把字符和字符串赋给变量的形式有所区别。字符实际上是字符常量,是以单引号括起来的一个字符;字符串实际上是字符串常量,是以双引号括起来的字符序列,在内存中存放时末尾会添加0'作为结尾标记。例如:chara=c'/把字符c赋给变量acharA=“abcd”;/把字符串abcd赋给变量aMatlab中对字符和字符串没有明确的区分,都可以通过“a='字符串内容'的形式把字符或字
8、符串赋给变量a。例如:a='c'A='abc'6 自定义函数的对比C+中自定义函数的语法形式为:类型标识符函数名(形式参数列表)函数实现语句类型标识符表示返回值类型,函数的返回值由return语句给出。如果函数没有返回值,则类型标识符用void表示,不必写出return语句。在调用函数之前,要先在主调函数中声明函数原型,调用的形式为“函数名(实际参数列表)”C+中的函数可以与主函数写在同一个源文件中;也可以写成单独的头文件,并把头文件名嵌入主程序。Matlab的自定义函数通过关键词function声明,形式如下:function返回值列表=函数名(形式参数列表)
9、函数实现语句Matlab的函数文件一般另存为一个单独的m文件,存放在与主调函数文件同一路径下,否则函数不能被调用。保存时,Matlab系统会自动默认把函数文件保存为文件名与函数名相同的m文件。Matlab可定义函数有多个返回值;如果函数没有返回值,则可以直接定义:function函数名(形式参数列表)函数调用的形式与C+相同,都是通过“函数名(实际参数列表)”调用。7 循环及选择语句的对比在C+和Matlab中,都包括if和switch两种选择语句以及for和while两种循环语句,其基本形式都是一致的。主要区别的是C+中的语句体需要用“”括起,Matlab中的语句体不需括起,但要以关键词“e
10、nd”作为循环或选择结构的结束标志。如果需要用for语句表示循环条件初值i=0,循环终值条件为iva,用C+表示为:“for(inti=0;iva;i+)”;由于Matlab自身以矩阵运算的特点,只需要写成“fori=0:a”,C+中改变循环表达式的语句i+已隐含在“:”中,表示每循环一次i自增1。如果改变循环表达式的语句为“i+=n”,即每循环一次i自增n,则用Matlab可表示为“fori=0:n:a”。8 输入与输出语句的对比C+中,数据的输入和输出时通过I/O流实现的,cin和cout是预定义的流类对象。cin用来处理标准输入,即键盘输入;cout用来处理标准输出,即屏幕输出。键盘输入
11、的格式为:“cin>>变量1>>变量2”,表示要求从键盘上输入一个或多个变量,多个变量之间以空格分开。变量的类型可以是数字或者字符,需要在cin语句之前进行声明。例如:inta,b;cin>>a>>b;该组语句把从键盘输入的两个整型数依次赋给变量a和b。屏幕输出的格式为:“coutv<表达式VV表达式”,输出多个数据项。插入运算符“VV”之后可以加双引号(“”)括起的字符串或任意复杂的表达式,系统会把字符串输出或自动计算出表达式的值并输出。例如:inta=1,b=2;coutvv“a+b=”vva+b;该组语句的输出为“a+b=3”,即把字
12、符串“a+b=”和表达式a+b的值依次输出oMatlab的键盘输入通过函数“input”实现,具体用法为“a=input'(输入提示')”,把用户从键盘输入的数据赋给变量a。如果希望输入是一个数组或矩阵,则只需把输入内容用中括号()括起,系统把默认把输入视为数组或矩阵。例如:运行语句“a=input('a=')”,用户输入“a=12;34”,运行结果为:a=1234如果希望输入内容是一个字符串,则要在input语句中加上字符的限制符"'s'”,形式为“a=input('输入提示',s')”。例如:运行语句“a=input('a=',s')”,用户输入“a=TodayisSunday.”,运行结果为:“a=TodayisSunday.”。在输入字符串时以单引号引起输入的内容,系统也可以把输入内容识别为字符串。Matlab的屏幕输出可通过disp和fprintf语句实现。9 结语从基本语法结构、基本数据类型、变量的声明与初始化、运算符、循环及选择语句、自定义函数、系统函数、基本输出与输出语句8个基本方面讨论了C+和Matlab语言的异同,指出了在编程过程中容易出现语法错误之处,由于Matlab是一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大米专用冰箱产品供应链分析
- 带有时钟的收音机产业链招商引资的调研报告
- 医疗影像技术行业相关项目经营管理报告
- 乐器修理或维护行业营销策略方案
- 美容霜项目营销计划书
- 幼儿园行业经营分析报告
- 不动产出租服务行业营销策略方案
- 含药物的护肤液产品供应链分析
- 矿物绝缘电缆产品供应链分析
- 云计算法务服务行业营销策略方案
- 实验室设计论文 米酒厂化验室设计
- 试论网络思想政治教育存在的问题及对策
- 水浴式灭菌柜的工作原理及其验证
- (完整版)外贸合同(中英双语)
- 嵌入式系统设计专题实践嵌入式交通信号灯
- 医院胸痛中心奖惩办法(完整版)
- 行政管理存在的问题与对策
- CJJ101-2016埋地塑料给水管道工程技术规程
- 文化广场规划设计方案说明书
- 2012年数学建模机器人避障问题
- 规模化养猪场的科学用水管理
评论
0/150
提交评论