-
0 评论
啥是matlab?(上 前世今生)
听到matlab这个名词,你会最先想到什么?反正我第一次听到这个词的时候我是挺懵的,不知道大家有没有同样的感受?第我一次听到这个词,好像是在高三的名词交流活动上,听一个学姐说学自动化或者计算机专业大一会有一门课教matlab。当时我的一个感受就是好懵,Matlab到底是个啥?是一个语言环境还是一个APP?是用于编程的还是用于数字计算呢?反正当时这个问题困扰了好久,直到真正接触了这个平台以后,才有了一个直观的认识。那今天我就用这篇文章带大家好好的认识一下什么是matlab,并讲一下他的前世今生,是什么样的一个契机让这一款超级强大,90%以上的工程领域都在使用的一个数学计算应用仿真工具诞生的。
在正式聊MATLAB这款科学计算软件时,先让我们从它的名字开始琢磨一下它是做什么的。MATLAB,全称Matrix Laboratory,即“矩阵实验室”,这个名字直观地反映了其最初的设计目的和核心功能——专注于矩阵运算。矩阵作为数学和科学计算中的基础工具,它的重要性不言而喻,而MATLAB正是围绕这一核心,构建了一个集科学计算、数值分析、矩阵计算、数据可视化及交互式程序设计于一体的计算环境。
MATLAB的历史可以追溯到20世纪70年代,当时美国新墨西哥大学的计算机科学系主任Cleve Moler(但我还是比较喜欢叫他的译名莫纳)为了减轻学生编程的负担,编写了最早的MATLAB。那时,矩阵计算是许多科学和工程领域不可或缺的一部分,但传统的编程语言如FORTRAN(是世界上最早出现的计算机高级程序设计语言之一),对于非专业程序员来说学习难度较大。莫纳教授的初衷是为学生们提供一个更易于使用的矩阵计算工具,让他们能更专注于问题的核心,而非编程细节。
最初,MATLAB只是一个简单的矩阵运算工具,用FORTRAN编写,主要用于课堂教学。然而,随着其功能的不断完善和用户的广泛好评,MATLAB逐渐引起了业界的关注。1984年,莫纳教授与Jack Little和Steve Bangert合作成立了MathWorks公司,正式将MATLAB推向市场,开启了其商业化进程。
自商业化以来,MATLAB经历了多次重要的版本更新和功能扩展。MathWorks公司不断增加新的工具箱(Toolbox),以覆盖更多数学和工程领域的需求。这些工具箱不仅扩展了MATLAB的应用范围,还极大地提高了其解决问题的能力和效率。从数值分析、信号处理、控制系统设计,到图像处理、深度学习、金融建模,MATLAB逐渐成长为一个功能全面的科学计算平台。在发展过程中,MATLAB还引入了许多创新特性,如面向对象编程(OOP)、并行计算支持、图形处理功能的增强等。这些特性使得MATLAB不仅能够处理复杂的数学和工程问题,还能够以更高效、更直观的方式展示和分析数据。此外,MATLAB还提供了丰富的预定义函数库和易用的编程环境,包括工具箱、编辑器、调试器等组件,极大地提高了编程效率。比如我现在手上正在使用的这个版本是2022a,就是2022年上半年更新的,这款里面一共有102个插件。可以说是包括了从数学计算到电气调试到机器人学正逆解运算领域的全覆盖。
那我们聊完他的历史之后,有些小伙伴们都要问了,那我们为什么要去学matlab这门课程呢?Matlab作为一个高级的计算处理工具是用于前沿的技术以及深度计算使用的,那像我们本科刚入学阶段即使放眼整个本科教育阶段可能都不会遇到多么复杂的计算需求。那我们去学Matlab有什么用呢,或者说我们为什么要这么早的去学习它?
那让我去解释的话我觉得理由是非常充分的,第一点就是因为学习matlab的下限非常低。在上文也提到了matlab中使用的语言是进行过封装的,它的使用难度是非常低的,基本只要记住几个运算符和大概十几个命令语句,就可以比较熟练的使用它的最基本功能矩阵运算了,而且相比较于Python和c语言他没有严格的语法要求,可以说是对于零基础的小白太友善了。所以很多学校都会拿matlab作为计算机初步这门课程的教学载体去教一些计算机原理,常识,也通过使用matlab去讲述一些编程思想,计算思想。第二点,我觉得就是学习它的主要目的就是与大一上学期的线性代数课程相匹配,用matlab作为一个计算工具去测试矩阵方程,可以帮助我们很好的理解矩阵运算的原理,解析行列式的变换。那第3点呢我觉得就是matlab将是未来机器人研究的核心计算平台。因为未来AI的成熟,并将会让人形机器人成为行业的主流,这必然牵扯到了大量的运动学正解运算,这种大量的计算可不能跟之前的工业机器人或者说是传统的轮式动平台,四足机械狗的计算量相比,毕竟原来的机械臂可能最多也就6~7个关节,但人形机器人的一条腿或者一只胳膊,它的自由度可能都达到了十几个,它的姿位调节时计算所需要的矩阵数量以及计算复杂程度不是手算或者说是常规计算工具所能达到的,这时候matlab里面的计算插件就派上了用场,接插件不仅仅可以输出关节所需要的矢量数据,还可以用可视化的仿真软件展示出来。所以说matlab在未来肯定会陪伴机器人工程自动化这些专业的同学们很久很久。提早的接触也是可以帮助我们有足够的时间去消化它的一些基础用法,为未来的深入使用奠定一定的基础。