跳至內容

MATLAB

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 19:10 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

MATLAB(Matrix Laboratory,矩陣實驗室)是由美國 The MathWorks 公司出品的商業數學軟體。MATLAB 是一種用佇咧演算法開發、資料視覺化、資料分析佮數值計算的進階技術計算語言佮互動式環境。除矩陣運算、畫函數 / 資料圖像等等用功能外,MATLAB 閣會當用來建立使用者介面,以及呼叫其他的語言(包括講 C、C + +、Java、Python、FORTRAN)編寫的程式。

MATLAB 主要用佇數值運算,利用濟濟的附加工具箱,伊嘛適合無仝款領域的應用,親像控制系統設計佮分析、影像處理、深度學習、訊號處理佮通訊、金融建模和分析等等。另外閣有配套軟體套件 Simulink 提供視覺化開發的環境,定用佇系統類比、動態 / 1875入式系統開發等方面。

佇咧 R 二千空一十七 b 後的 MATLAB 版本更釋出了深度學習的工具,使其實會當視覺化的快速建立 AI 模型,並透過各種轉碼器,部屬於1875入式硬體之中。

截到二空二空年,MATLAB 佇全球有超過四百萬使用者。MATLAB 使用者來自工程、科學佮經濟學領域。

歷史

一九七空年代尾到八空年代初,時任美國新墨西哥大學教授的克里夫 ・ 莫勒爾為著予學生閣較方便使用 LINPACK 佮 EISPACK(需要過通過 FORTRAN 編程來實現,毋過彼个時陣學生並無相關的智識), 獨立編寫了頭一个版本的 MATLAB。這个版本的 MATLAB 只會當進行簡單的矩陣運算,比如講矩陣轉置、計算行列式佮本徵值,這个版本軟體分發出大約兩三百份。

一九八四年,傑克 ・ 李特、克里夫 ・ 不要勒爾佮斯蒂夫 ・ 班格爾特合作成立了 MathWorks 公司,正式共 MATLAB 捒對市場去。MATLAB 頭先是由莫勒爾用 FORTRAN 編寫的,李特和班格爾特開約冬半的時間用 C 重新共編寫矣 MATLAB 嘛增加一寡新的功能,同時,李特閣開發頭一个系統控制工具箱,其中一寡代碼到這馬猶閣咧使用。C 語言版的面向 MS-DOS 系統的 MATLAB 一板零佇拉斯維加斯舉行的 IEEE 決策佮控制會議(IEEE Conference on Decision and Control)正式推出,伊的第一份訂單干焦賣出十份複製品,到甲這當陣,根據 MathWorks 家己的資料,目前世界上百八外个國家的超過三百萬的工程師佮科學家咧使用 MATLAB 和 Simulink。

一九九二年,學生版 MATLAB 推出;一九九三年,Microsoft Windows 版 MATLAB 世間;一九九五年,推出 Linux 版。

主要功能

MATLAB 的主要提供以下的功能:

  • 會當用佇技術計算的高階語言
  • 可對代碼、檔案佮資料進行管理的開發環境
  • 會用得迵天代的方式來探查、設計佮求解問題的互動式工具
  • 通用佇線性的代數、統計、傅立葉分析、篩選、最佳化以及數值積分等等的數學函數
  • 通用於視覺化資料的二維和三維圖形函數
  • 通用佇構建定的圖樣化使用者介面的各種工具
  • 可將是咧講 MATLAB 的演算法佮外部應用程式佮語言(如 C、C + +、Fortran、Java、COM 以及 Microsoft Excel)整合的各種函數

工具箱

MATLAB 的一个重要特點會當延伸性。做為 Simulink 佮其他所有 MathWorks 產品的基礎,MATLAB 會當迵過附加的工具箱(Toolbox)進行功能擴充,每一个工具箱就是實現特定功能的函數的集合。MathWorks 提供的工具箱分以下幾大類:

  • 數學佮最佳化
  • 統計佮資料分析
  • 影像處理佮電腦視覺
  • 深度學習佮機器學習
  • 控制系統設計佮分析
  • 訊號處理佮通訊
  • 測試佮測量
  • 金融建模和分析
  • 應用程式部署
  • 資料庫連接佮報表
  • 分散式計算遮的工具箱大多數攏是用開放式的 MATLAB 語言寫做,使用者毋但會當檢視原始碼,猶閣會當會當根據家己的需要進行修改佮建立自訂函數。此外,定有使用者佇 MATLAB Central : File Exchange 發布家己編寫的 MATLAB 程式抑是工具箱,予伊人自由下載使用。

MATLAB 語言

MATLAB 語言是一種互動性的數學手稿語言,其語法佮 C / C + + 類似。伊支援包括邏輯(boolean)、 數值(numeric)、 文字(text)、 函數柄(function handle)佮異質資料容器(heterogeneous container)在內的十五種資料類型,每一種類型攏定義做矩陣抑是陣列的形式(散維至任意高維)。

執行 MATLAB 代碼的上簡單方式是佇咧 MATLAB 程式的號令窗口(Command Window)的提示符處(` > > `)輸入代碼,MATLAB 會即時倒轉去操作結果(如果若有)。 現此時,MATLAB 會當看作是一个互動式的數學終端,簡單來講,一个功能強大的「計算機」。 MATLAB 代碼仝款會當儉佇一个以 _ . m _ 為字尾名的文字檔案中,然後佇咧命令的窗仔口抑是函數中直接哀叫。

變數佮別人價值

MATLAB 的變數名佮真濟程式語言仝款,嚴格區分大細寫,比如講,_ var _、_ VAR _ 和 _ Var _ 是三个無仝款的變數。另外咧,MATLAB 中變數名著愛以字母為首字母,_ 三 var _、_ \ _ var _ 等是非法的變數名。變數由設定運算子(`=`)定義 . MATLAB 是動態檢查的,這意味意變數會當佇咧未定義其類型的情形下有價值並且變數的類型嘛會當改變,除非將變數看做是符號物件。變數值會當取自常數,算中的其他變數的價值,抑是某一函數的輸出。比如講:

向量佮矩陣

MATLAB 的意思是講 " 矩陣實驗室 ",因此伊提供了真濟建立的向量,矩陣佮多維陣列的便捷的方式。佇咧 MATLAB 咱的家己的語言內底,一个 _ 向量 _(vector)是一維(一 × _ N _ 抑是 _ N _ × 一)矩陣,佇咧其他的語言內底通常予人號做陣列(array)。 _ 矩陣 _(matrix)通常指的是二-維陣列,比如講 _ m _ × _ n _ 陣列其中 _ m _ 和 _ n _ 大於抑是等於一。真濟維陣列通常指的是維數較大第二的陣列。

需要注意的是,雖然 MATLAB 用 C 語言重寫,毋過佇矩陣儲存的方式煞佮 FORTRAN 保持一致,兩个人使用的均為列優先儲存,毋是行優先儲存。咧進行較大的矩陣運算時,這精差的對效能的影響是不應忽略的。

MATLAB 提供定義簡單陣列的簡單方式,用語法:_ 初值 _ ` : ` _ 增量 _ ` : ` _ 終值 _。比如講:

定義一个名 ` array ` 的變數(抑是向已經存在的變數 ` array ` 予一个新值的部份), 其值為包括一 , 三 , 五 , 七 , 九的一个向量。即陣列由一開始(_ 初值 _), 逐改以增量兩(_ 增量 _)遞增,做達到九(_ 終值 _)時停止。

佇這个語法內底 _ 增量 _ 可予人省起來(按呢賰一个冒號), 彼陣仔增加採用預設值一。

因為預設增加予伊,頂懸的語句對變數 ` ari ` 用用咧 , 二 , 三 , 四 , 五的向量足值的。 佇咧 MATLAB 內定義矩陣仝款足簡單的,比如講:


佇咧 MATLAB 記持體取矩陣元素仝款非常簡單,比如講:


若欲對矩陣內所有的元素做仝款的運算,次方倍,需要佇運算元頭前加上 " . ",比如講:


若無佇運算元頭前閣加上 " . " 著愛代表矩陣運算:

代數 / 符號運算

利用 MATLAB 的符號數學工具箱(Symbolic Math Toolbox)會當進行代數抑是符號運算,分解多項式因為佮解代數方程式:

共多項式 $ A=x ^ { 三 } ma三 x ^ { 二 } y + 三 xy ^ { 二 }-y ^ { 三 } $ 簡省變成 $ ( x-y ) ^ { 三 } $。

求愛方程式 $ x ^ { 二 } 鋪二 x 扳四=零 $ 的兩个解為 $ 一 + { \ sqrt { 五 } } $ 和 $ 一-{ \ sqrt { 五 } } $。

圖形佮圖形化使用者介面編程

MATLAB 四常用的繪圖命令是 _ plot _,譬如講共描繪一个佇咧 [扳四 , 四] 區間內的正弦函數:

利用 _ plot _ 命令嘛會當仝一幅圖內底描繪多個函數圖形:

用 MATLAB 的畫圖命令會當生做複雜的三維圖形:

版本歷史

到七堵一版為止,MATLAB 的釋放編號攏以數字來號名,比如講 R 七,R 十二孵一,R 十四 SP 一等;對七堵二版開始,釋放編號以年份來號名,逐冬的三月份推出的用 a 表示,九月份的推出的則以 b 表示,比如講 R 二千空六 a 代表二空空六年三月推出的版本,R 二千空九 b 指二空空九年後半年推出的版本:

對兩千空一十四 a 版起,Matlab 介面支援中文。

其他科學計算是軟體

商業軟體

Maple

Maple 是 Waterloo Maple Inc .(簡稱 Maplesoft)開發的商業電腦代數系統,用佇咧快速計算、開發設計表單、教學基本概念抑是建立高保真類比模型等等。上新的版本是二空一八年三月發佈的 Maple 二千空一十八分零,分 Personal(個人版), Professional(專業版), Academic(學術版), Government(政府版)和 Student(學生版)。

Mathematica

Mathematica 是史蒂芬 ・ 沃爾夫勒姆開發的科學計算是軟體,開發工課這馬 Wolfram Research 公司負責。上新版本是二空一九年四月十六發布的 Mathematica 十二孵空。

LabVIEW

LabVIEW 是美國國家儀器公司開發的視覺化編程平台,其實主要用佇資料來採集,儀器控制佮工業自動化。上新的版本是二空二一年八月發佈的 LabVIEW 二千空二十一。

開源軟體

FreeMat

FreeMat 這是一个佮 MATLAB 和 IDL 足類似的數值計算平台佮程式語言。上新的版本是二空空九年十月的發布的 FreeMat 四配零

GNU Octave

GNU Octave 是一種主要用佇數值計算的高階語言。伊除了提供數值方法解決線性佮非線性問題的命令介面,閣提供一種佮 MATLAB 抵相容的語言。上新版本是二空一九年三月初一發布的五孵一 . 零。

Scilab

Scilab 是一个互動性的數值運算平台,主要是用佇工程佮科學應用方面,譬如講航空航天、汽車、能源、金融、化學、生物、醫學、國防等。上新版本是五更四 . 零。

ScicosLab

ScicosLab 是由一寡曾在 INRIA 和 ENPC 參與喔 Scilab 開發的研究人員,佇咧 Scilab BUILD 四版本的基礎頂懸開發出來的 GTK + 版本,伊整合了建模 / 類比家私 Scicos 閣有其他數量濟濟的工具箱,予人認為講是「惟一一款會當佮商業軟體 MATLAB / Simulink 佮 MATRIXx / SysstemBuild 無輸予閣較媠的開源軟體」。 上新穩定版本是四配四 . 一。

JAMA

JAMA ( JAMA  : A Java Matrix Package ),一款 Java 語言編程工具包。目前上新一丈零 . 三版本,是二空一二年十一月初九發布的。

NumPy 佮 SciPy

NumPy 是 Python 語言的一个擴充程式庫。支援高階大量的維度陣列佮矩陣運算,此外嘛針對陣列運算提供大量的數學函式函式庫。

SciPy 是一个開源,是因為 NumPy 的 Python 演算法庫佮數學工具包,包含的模組有最佳化、線性代數、積分、插值、特殊函式、快速傅立葉變換、訊號處理佮圖像處理、不微分方程式求解佮其他科學佮工程中常用的計算。

Julia

Julia 是一个進階通用語言。


中國大陸受限

二空二空年六月十二號,美國對位列實體清單中的哈爾濱工業大學、哈爾濱工程大學等高等院校實施制裁,禁止使用 MATLAB。

注釋

參考文獻

參照

外部連結

  • MATLAB 官方網站
  • MATLAB 線頂教材
  • Matlab 技術論壇
  • 線頂執行 Matlab 語法
  • 矩陣實驗室(MATLAB)新湧微博
  • Matlab 教學

參見

  • Maple
  • Maxima
  • Mathematica
  • GNU Octave
  • Scilab
  • R 語言
  • Origin
  • Spyder
  • 是因為模型的設計