最开始,MATLAB 里的每个值都是双精度
浮点数组,设计之初就确定了使用数组和浮点数。
浮点数的
IEEE 754 标准直到 1985 年才被采用,那时的内存是用 K 而不是用 G 来测量的。浮点数的双精度表示并不是最有效的表示字符或整数的方法,但是它们是科学家、工程师以及越来越多的数学家大部分时间里更愿意使用的格式。此外,不需要声明变量,也不需要显式地分配内存。让计算机来处理这些任务,并快速处理数据类型,解放你的大脑去思考对数据进行操作的算法。
数组之所以重要,是因为
线性代数中的数值算法正在以 LINPACK 和 EISPACK 的形式出现。但是,使用科学计算的标准载体 FORTRAN 77 来访问它们是一个多步骤的过程,包括声明变量、调用名称神秘的例程、编译代码,然后检查数据和输出文件。把
矩阵乘法写成 A*B 的形式,然后马上把答案打印出来,这是一种对
游戏规则的改变。
MATLAB 还使图形变得更简单、更容易访问。没有使用底层调用和硬件相关的库,只用一个 plot(x,y) 就可以得到想要的图形。它还有很多创新之处,比如嵌入复数、稀疏矩阵、构建跨平台
图形用户界面的工具,以及领先的 ODE 求解程序套件,这些都使 MATLAB 在科学计算上速度非常快。
然而,对于交互式计算 (即使是长时间的计算) 来说,理想的设计并不总是有助于编写高性能软件。在许多函数之间移动数据需要同时处理许多变量,并经常查阅关于输入和输出参数的文档。对于小型项目来说,在平面名称空间中为每个磁盘文件提供一个函数非常简单,但是对于大型项目来说就比较麻烦了。如果要避免速度瓶颈,必须应用某些编程模式 (向量化、内存预分配)。科学计算现在被应用到更多领域,拥有大量不同类型的原生数据。
MathWorks 对 MATLAB 持续进行了创新:内联函数、嵌套函数、变量闭包、大量的数据类型、
面向对象特性、
单元测试框架等等。每一个创新都可能是一个重要问题的解决方案。但 40 年来这些变化的累积产生了副作用,削弱了概念的简单性和统一性。2009 年,我写了一本书,在不到 100 页的篇幅里,很好地涵盖了我认为 MATLAB 的基本内容。据我所知,它们现在仍可用。不过要想精通的话,还需要了解更多。
本回答被网友采纳