Matlab 与 C++ 的对比
1 前言
C++和 Matlab 是我们已经学习过的两门计算机语言,在数学领域上的基本使用中占有十分
重要的地位。 C++为我们数学更好的解析和掌握打下了基础; matlab 是为了解决问题(学术
性的、工程上的) ,得到一个最终(或可优化)的结果,结果可能是一串数字,加以解释则
能得到强大的作用。 而 C++与 Matlab 本质上的区别是在于 C++存在全局变量、 结构、 枚举、
联合等一系列源于 C 的概念, 包含了面向对象和面向过程的双重概念, Malab 的特点则是它
讲矩阵作为基本存储单元。 Matlab 里数据存储的基本单元是矩阵,即使一个数内部也是看
做一个矩阵。存储在 Matlab 变量中的值都属于一个类。这些值不仅包括你可能通常会考虑
的对象,如时间序列货状态空间对象,也包括双精度数。所有的 Matlab 数据类型都具有面
向对象编程中的类的功能。 由于两者都是计算机语言, 在基本的语法方面具有相似之处。 但
毕竟两门语言的开发环境不同, 在一些具体的语法方面会有所不同, 某些符号在两门语言中
可能代表不同的运算。 学生一般相继学习这两门语言, 很容易对这两门语言的语法发生混淆,
例如把 C++的语法用在了 Matlab 上,程序运行错误而不知错误原因。因此,把这两门语言
一些基本的语法点做出比较显得较有实际意义, 也能为学习提供参考, 避免在编程方面出现
低级错误。
2 Matlab 与 C++的介绍
Matlab 是 Mathworks 公司推出的数学软件,它将数值分析、矩阵计算、信号处理和图形显
示结合在一起,包含大量高度集成的函数可供调用,命令语句功能十分强大,为科学研究、
工程设计及众多学科领域提供了一种简洁、高效的编程工具。但是 Matlab 使用的是解释性
语言,大大限制了它的执行速度;源代码的公开不利于算法和数据的保密;局限于 Matlab
运行环境而不能用于开发商用软件。 Visual C++ 是 Windows 平台下主要的应用程序开发环境
之一, 它能方便实现软件开发, 开发的系统具有界面友好、执行速度快、易维护和升级等优
点。但是在工程计算方面,和 Matlab 相比编程显得复杂的多。因此实现 Matlab 混合编程,
使两者结合起来,协同工作,必将提高软件开发效率,使所开发的软件具有更高的性能,更
大的应用范围,也可以为科学研究和工程技术提供更强的技术支持。
3 数据类型的对比
C++的基本数据类型有 bool (布尔型)、char (字符型)、int (整型)、float (浮点型,表
示实数)、double (双精度浮点型,简称双精度型) 。除了 bool 型外,主要有两大类:整数
和浮点数,其中有关键字 signed (有符号数) 和 unsigned (无符号数) ,short (短数据
型) 和 long (长数据型) 作为修饰符。 bool 型数据也称为逻辑型数据,取值只能是 false
(假) 或 true(真),分别以 0 和 1 表示。
Matlab 内部只有一种数据格式,即双精度( 64 位) 二进制, Matlab 作运算和存储时都用
双精度格式 [2] 。无论什么时候将一个数值赋予一个变量名, Matlab 将自动创建一个 double
型变量。如果需要改变变量的类型,可以通过 format 指令改变数据显示的格式
4 运算符的对比
C++和 Matlab 都提供了加减乘除等基本算术运算符、赋值运算符、大于小于等关系运算符
以及与或非等逻辑运算符,具体差别如表 1-2 所示。
基本算术运算符与赋值运算符的比较
加 减 乘 除 取余 赋值