MATLAB
MATLAB(Matrix Laboratory,矩阵实验室)是由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可用来创建用户界面,以及调用其它语言(包括C、C++、Java、Python、FORTRAN)编写的程序。 MATLAB主要用于数值运算,但利用为数众多的附加工具箱,它也适合不同领域的应用,例如控制系统设计与分析、影像處理、深度學習、信号处理与通讯、金融建模和分析等。另外还有配套软件包Simulink提供可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。 在R2017b後的MATLAB版本更釋出了深度學習的工具,使其能夠視覺化的快速建立AI模型,並透過各種轉碼器,部屬於嵌入式硬體之中。 截至2020年,MATLAB在全球擁有超過400萬用戶。MATLAB用戶來自工程、科學和經濟學領域。 历史[编辑]1970年代末到80年代初,时任美国新墨西哥大學教授的克里夫·莫勒尔为了让学生更方便地使用LINPACK及EISPACK(需要通过FORTRAN编程来实现,但当时学生们并无相关知识),独立编写了第一个版本的MATLAB。这个版本的MATLAB只能进行简单的矩阵运算,例如矩阵转置、计算行列式和本征值,此版本软件分发出大约两三百份[7][8]。 1984年,杰克·李特、克里夫·莫勒尔和斯蒂夫·班格尔特合作成立了MathWorks公司,正式把MATLAB推向市场[8][9]。MATLAB最初是由莫勒尔用FORTRAN编写的,李特和班格尔特花了约一年半的时间用C重新编写了MATLAB并增加了一些新功能,同时,李特还开发了第一个系统控制工具箱,其中一些代码到现在仍然在使用[8]。C语言版的面向MS-DOS系统的MATLAB 1.0在拉斯维加斯举行的IEEE決策与控制会议(IEEE Conference on Decision and Control)正式推出[8][10][a],它的第一份订单只售出了10份拷贝[8],而到了现在,根据MathWorks自己的数据[11],目前世界上180多个国家的超过三百万工程师和科学家在使用MATLAB和Simulink。 1992年,学生版MATLAB推出;1993年,Microsoft Windows版MATLAB面世;1995年,推出Linux版[8]。 主要功能[编辑]MATLAB的主要提供以下功能[12]:
工具箱[编辑]MATLAB的一个重要特点是可扩展性。作为Simulink和其它所有MathWorks产品的基础,MATLAB可以通过附加的工具箱(Toolbox)进行功能扩展,每一个工具箱就是实现特定功能的函数的集合[b]。MathWorks提供的工具箱分以下几大类[13]:
这些工具箱大多是用开放式的MATLAB语言写成,用户不但可以查看源代码,还可以可根据自己的需要进行修改以及创建自定义函数。此外,常有用户在MATLAB Central: File Exchange (页面存档备份,存于互联网档案馆)发布自己编写的MATLAB程序或工具箱,供他人自由下载使用。 MATLAB语言[编辑]MATLAB语言是一种交互性的数学脚本语言,其语法与C/C++类似。它支持包括逻辑(boolean)、数值(numeric)、文本(text)、函数柄(function handle)和异质数据容器(heterogeneous container)在内的15种数据类型,每一种类型都定义为矩阵或阵列的形式(0维至任意高维)[14]。 执行MATLAB代码的最简单方式是在MATLAB程序的命令窗口(Command Window)的提示符处( 变量与赋值[编辑]MATLAB的变量名字跟许多程序语言一样,严格区分大小写,例如,var、VAR和Var是三个不同的变量。另外,MATLAB中变量名字必须以字母为首字母,3var、_var等是非法的变量名。变量由赋值运算符( >> x = 17 x = 17 >> x = 'hat' x = hat >> x = [3*4, pi/2] x = 12.0000 1.5708 >> y = 3*sin (x) y = -1.6097 3.0000 向量和矩阵[编辑]MATLAB的意思是"矩阵实验室",因此它提供了许多创建向量,矩阵和多维数组的便捷的方式。在MATLAB自己的语言中,一个向量(vector)指的是一维(1×N或N×1)矩阵,在其他语言中通常被叫做数组(array)。矩阵(matrix)通常指的是2-维数组,例如m×n数组其中m和n大于或等于1。多维数组通常指的是维数大于2的数组。 需要注意的是,虽然MATLAB用C语言重写,但是在矩阵存储方式上却和FORTRAN保持一致,两者使用的均为列优先存储,而非行优先存储[c]。在进行较大的矩阵运算时,这一差别对性能的影响是不应忽略的。[有歧义] MATLAB提供了定义简单数组的简单方式,使用语法:初值 >> array = 1:2:9 array = 1 3 5 7 9 定义了一个名为 >> array = 1:3:9 array = 1 4 7 在该语法中增量可被省略(这样仅剩一个冒号),这时增量采用默认值1。 >> ari = 1:5 ari = 1 2 3 4 5 由于默认增量为1,上面的语句对变量 >> M = [1,2,3;4,5,6;7,8,9] M = 1 2 3 4 5 6 7 8 9
>> M = [1,2,3;4,5,6;7,8,9] M = 1 2 3 4 5 6 7 8 9 >> M(2,2)ans = 5 >> M(2,:)ans = 4 5 6 >> M(:,1)ans = 1 4 7 >> M(2,2) = 10 M = 1 2 3 4 10 6 7 8 9
>> M = [1,2,3;4,5,6;7,8,9] >> M .^2 ans = 1 4 9 16 25 36 49 64 81
>> M = [1,2,3;4,5,6;7,8,9] M ^2 = M * M = 30 36 42 66 81 96 102 126 150 代数/符号运算[编辑]利用MATLAB的符号数学工具箱(Symbolic Math Toolbox)[d]可以进行代数或符号运算,如分解多项式因子和解代数方程: >> syms x y >> A=x^3-3*x^2*y+3*x*y^2-y^3; >> factor (A) ans = (x - y)^3 把多项式简化成了。 >> solve('x^2 - 2*x - 4 = 0')ans = 1 - 5^(1/2) 5^(1/2) + 1 求得方程的两个解为和。 图形和图形用户界面编程[编辑]MATLAB中常用的绘图命令是plot,例如描绘一个在[-4,4]区间内的正弦函数:
利用plot命令也可以在同一幅图中描绘多个函数图形:
用MATLAB的画图命令可以生成复杂的三维图形[e]:
版本歷史[编辑]到7.1版为止,MATLAB的释放编号均以数字来命名,例如R7,R12.1,R14 SP1等;从7.2版开始,释放编号以年份来命名,每年3月份推出的用a表示,9月份推出的则以b表示,例如R2006a代表2006年3月推出的版本,R2009b指2009年下半年推出的版本[16]:
从2014a版起,Matlab界面支持中文[17]。 其它科学计算软件[编辑]商业软件[编辑]Maple[编辑]Maple是Waterloo Maple Inc.(简称Maplesoft)开发的商业计算机代数系统,用于快速计算、开发设计表单、教学基本概念或建立高保真模拟模型等。最新版本是2018年3月发布的Maple 2018.0,分Personal(个人版),Professional(专业版),Academic(学术版),Government(政府版)和Student(学生版)。 Mathematica[编辑]Mathematica是斯蒂芬·沃爾夫勒姆开发的科学计算软件,开发工作现由Wolfram Research公司负责。最新版本是2019年4月16日发布的Mathematica 12.0。[18] LabVIEW[编辑]LabVIEW是美国国家仪器公司开发的可视化编程平台,主要用于数据采集,仪器控制和工业自动化。最新版本是2021年8月发布的LabVIEW 2021。 开源软件[编辑]FreeMat[编辑]FreeMat是一个与MATLAB和IDL很类似的数值计算平台及程序语言。最新版本是2009年10月发布的FreeMat 4.0 GNU Octave[编辑]GNU Octave是一種主要用於數值計算的高級語言。它除了提供數值方法解決線性和非線性問題的命令介面,還提供了一種與MATLAB大抵兼容的語言。最新版本是2019年3月1日发布的5.1.0。 Scilab[编辑]Scilab是一个交互性的数值运算平台,主要用于工程和科学应用方面,例如航空航天、汽车、能源、金融、化学、生物、医学、国防等。最新版本是5.4.0。 ScicosLab[编辑]ScicosLab是由一些曾在INRIA和ENPC参与Scilab开发的研究人员,在Scilab BUILD4版本的基础上开发出來的GTK+版本,它集成了建模/模拟工具Scicos[f]及其它数量众多的工具箱,被认为是“惟一一款可以与商业软件MATLAB/Simulink及MATRIXx/SysstemBuild媲美的开源软件”。最新稳定版本是4.4.1。 JAMA[编辑]JAMA (JAMA : A Java Matrix Package),一种Java语言编程工具包。目前最新1.0.3版本,是2012年11月9日发布的。 NumPy與SciPy[编辑]NumPy是Python語言的一個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式函式庫。 SciPy是一個開源,基於NumPy的Python演算法庫和數學工具包,包含的模組有最佳化、線性代數、積分、插值、特殊函式、快速傅立葉變換、訊號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算。 Julia[编辑]Julia是一种高级通用語言。 中國大陸受限[编辑]2020年6月12日,美国对位列实体清单中的哈爾濱工業大學、哈爾濱工程大學等高等院校实施制裁,禁止使用MATLAB。[19] 注释[编辑]
参考文献[编辑]引用[编辑]
外部链接[编辑]
参见[编辑]
Matlab主要用于什么?MATLAB 广泛应用于汽车主动安全系统、星际宇宙飞船、健康监控设备、智能电网和LTE 蜂窝网络。 它用于机器学习、信号处理、图像处理、计算机视觉、通信、计算金融、控制设计、机器人等。 数学、图形、编程。 MATLAB 平台进行了优化,可以更好地解决工程和科学问题。
Matlab使用的是什么语言?MATLAB(matrix laboratory)是一种多范型数值计算环境。 作为MathWorks 开发的一种专用编程语言,MATLAB 允许矩阵运算、函数和数据绘图、算法实现、用户界面创建,以及与用其他语言(包括C、C++、C#、Java、Fortran、Python)写成的程序进行交互。
Matlab是哪个国家的?MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。
Matlab是编程语言吗?它可以利用结构和信息,强调编程、函数编程和符号计算。 Matlab(Matrix Laboratory)是MathWorks开发的多范式数值计算环境和专有编程语言。
|