第一章 MATLAB概述
1.1MATLAB 簡介(以MATLAB R2018爲例)
1.1.1 MathWorks及其產品概述
MATLAB是矩陣實驗室(Matrix Laboratory)的簡稱,是一種用於算法開發、數據可視化、數據分析及數值計算的高級技術計算語言和交互式環境。
Simulink是一個用於對動態系統進行多域建模和模型設計的平臺。
PolySpace提供代碼驗證,可以確保消除源代碼中的溢出、除零、數組訪問越界及其他運行錯誤。(獨立於MATLAB軟件之外,需要單獨安裝)。
1.1.2 MATLAB和Mathematica、Maple並稱爲三大數學軟件
1.1.3 MATLAB主要特點
(1) 計算功能強大。
(2)繪圖非常方便。
(3)功能強大的工具箱。MATLAB包含兩個部分:核心部分和各種可選的工具箱。核心部分有數百個核心內部函數。其工具箱又分爲兩類:功能性工具箱和學科性工具箱。
功能性工具箱主要用來擴充其符號計算功能、圖示建模仿真功能、文字處理功能及與硬件實時交互功能。功能性工具箱用於多種學科。學科性工具箱的專業性比較強,如control、signal processing、communication 等。這些工具箱都是由該領域內學術水平很高的專家編寫的,所以用戶無須編寫自己學科範圍內的基礎程序,而直接進行高、精、尖的研究即可。
除內部函數以外,MATLAB 的所有核心文件和工具箱文件都是可讀可寫的源文件,用戶可通過對源文件的修改及加入自己的文件構成新的工具箱。
(4)幫助功能完整:自帶的幫助功能是非常強大的幫助手冊。
1.1.4 MATLAB的系統組成
MATLAB系統由MATLAB開發環境、MATLAB數學函數庫、MATLAB語言、MATLAB圖形處理系統和MATLAB應用程序接口(API) 五大部分構成。
1.MATL AB開發環境
MATLAB開發環境是一套方便用戶使用MATLAB函數和文件的工具集,其中許多工具是圖形化用戶接口。它是一個集成化的工作區,可以讓用戶輸入、輸出數據,並提供了M文件的集成編譯和調試環境。它包括MATLAB桌面、命令行窗口、M文件編輯調試器、MATLAB工作區和在線幫助文檔等。
2. MATLAB數學函數庫
MATLAB數學函數庫包括了大量的計算算法,從基本運算(如加法)到複雜算法(如矩陣求逆、貝濟埃函數、快速傅里葉變換等),體現了其強大的數學計算功能。
3. MATLAB語言
MATLAB語言是一個高級的基於矩陣/數組的語言,包括程序流控制、函數、腳本、數據結構、輸入/輸出、工具箱和面向對象編程等特色。用戶既可以用它來快速編寫簡單的程序,也可以用它來編寫龐大複雜的應用程序。
4. MATLAB圖形處理系統
圖形處理系統使得MATLAB能方便地圖形化顯示向量和矩陣,而且能對圖形添加標註和打印。它包括強力的二維及三維圖形函數、圖像處理和動畫顯示等函數。
5. MATLAB程序接口
MATLAB程序接口可以使MATLAB方便地調用C和Fortran 程序,以及在MATLAB與其他應用程序間建立客戶/服務器關係。
1.1.5 MATLAB應用程序簡介
應用程序(也稱工具箱)是MATLAB的重要部分,它是MATLAB強大功能得以實現的載體和手段,是對MATLAB基本功能的重要擴充。
MATLAB會不定時更新應用程序,可到http://www.mathworks.com/products中瞭解MATLAB應用程序的最新動態。
應用程序又可以分爲功能性應用程序和學科應用程序。功能性應用程序用來擴充MATLAB的符號計算、可視化建模仿真,以及與硬件實時交互等功能,能用於多種學科;學科應用程序是專業性比較強的應用程序,控制工具箱、信號處理與通信工具箱等都屬於此類。
下面將科學計算中常用的應用程序所包含的主要內容進行簡單介紹。
- 樣條工具箱
●分段多項式和B樣條。
●樣條的構造。
●曲線擬合及平滑。
●函數微積分。 - 優化工具箱
●線性規劃和二次規劃。
●求函數的最大值和最小值。
●多目標優化。
●約束條件下的優化。
●非線性方程求解。 - 偏微分方程工具箱
●二維偏微分方程的圖形處理。
●幾何表示。
●自適應曲面繪製
●有限元方法
1.2 MATLAB R2018a的目錄結構
在自定義的安裝目錄內包含了一系列的文件和文件夾。
其中部分文件和文件夾的用途:
●\bin\win32:MATLAB R2018a系統中可執行的相關文件。
●\extern:創建MATLAB R2018a的外部程序接口的工具。
●\help:幫助系統。
●\java: MATLAB R2018a的Java支持程序。
●\noebook: Notebook 是用來實現MATLAB教學工作環境與Word文字處理環境信息交互的軟件,是一個兼備數學計算、圖形顯示和文字處理能力的集成環境。
●\rtw: Real-Time Workshop軟件包。
●\simulink: Simulink軟件包,用於動態系統的建模、仿真與分析。
●\stateflow: Stateflow軟件包,用於狀態機設計的圖形化開發和設計工具。
●\sys: MATLAB R2018a需要的工具和操作系統庫。
●\toolbox: MATLAB R2018a的各種應用程序。
●\uninstall: MATLAB R2018a的卸載程序。
●\license.txt: 軟件許可協議的內容。
●\patents.txt:軟件申請的專利內容。
1.3 MATL AB R2018a的工作環境
MATLAB.exe在MATLAB R2018a的安裝目錄內的bin文件夾下。MATLAB R2018a的主界面即用戶的工作環境。
1.3.1 菜單/工具欄
MATLAB的菜單/工具欄中包含3個標籤,分別爲主頁、繪圖和應用程序。其中,繪圖標籤下提供數據的繪圖功能;而應用程序標籤則提供了各應用程序的入口。主頁標籤提供了下述主要功能。
●新建:用於建立新的m.文件、圖形、模型和圖形用戶界面。
●新建腳本:用於建立新的m.腳本文件。
●打開:用於打開MATLAB的m.文件、.fig文件、.mat文件、 .mdl文件、.cdr文件等,也可通過快捷鍵Ctrl+O來實現此項操作。
●導入數據:用於從其他文件導入數據,單擊後彈出對話框,選擇導入文件的路徑和位置。
●保存工作區:用於把工作區的數據存放到相應的路徑文件中。
●設置路徑:設置工作路徑。
●預設:用於設置命令窗的屬性,單擊預設
按鈕彈出預設項
對話框。
●佈局:提供工作界面上各個組件的顯示選項,並提供預設的佈局。
●幫助:打開幫助文件或其他幫助方式。
1.3.2 命令行窗口
命令行窗口是MATLAB最重要的窗口。用戶輸入各種指令、函數、表達式等,都是在命令行窗口完成的。
“>>”是運算提示符,表示MATLAB處於準備狀態,等待用戶輸入指令進行計算。當在提示符後輸入命令,並按Enter鍵確認後,MATLAB會給出計算結果,並再次進入準備狀態。
單擊命令行窗口右上角的下三角形圖標並選擇“取消停靠”,可以使命令行窗口脫離MATLAB界面成爲一個獨立的窗口;同理,單擊獨立的命令行窗口右上角的下三角形圖標並選擇 “停靠”,可使命令行窗口再次合併到MATLAB主界面。
1.3.3 工作區
工作區窗口顯示當前內存中所有的MATLAB變量的變量名、數據結構、字節數及數據類型等信息。 不同的變量類型分別對應不同的變量名圖標。
用戶可以選中已有變量,單擊鼠標石鍵對其進行各種操作。此外,工作界面的菜單/工具欄上也有相應的命令供用戶使用。
- 新建變量:向工作區添加新的變量。
- 導入數據:向工作區導入數據文件。
- 保存工作區:保存工作區中的變量。
- 清除工作區:刪除工作區中的變量。
1.4 MATLAB R2018a 的通用命令
通用命令是MATLAB中經常使用的一組命令, 這些命令可以用來管理目錄、命令、函數、變量、工作區、文件和窗口。爲了更好地使用MATLAB,用戶需要熟練掌握和理解這些命令。
1.常用命令
命令 | 命令說明 | 命令 | 命令說明 |
---|---|---|---|
cd | 顯示或改變當前工作文件夾 | load | 加載指定文件的變量 |
dir | 顯示當前文件夾或指定目錄下的文件 | diary | 日誌文件命令 |
clc | 清除工作窗中的所有顯示內容 | ! | 調用DOS命令 |
home | 將光標移至命令行窗口的最左上角 | exit | 退出MATLAB |
clf | 清除圖形窗口 | quit | 退出MATLAB |
type | 顯示文件內容 | pack | 收集內存碎片 |
clear | 清理內存變量 | hold | 圖形保持開關 |
echo | 工作窗信息顯示開關 | path | 顯示搜索目錄 |
disp | 顯示變量或文字內容 | save | 保存內存變量到指定文件 |
2.輸入內容的編輯
在命令行窗口中,爲了便於對輸入的內容進行編輯,MATLAB R2018a提供了一些控制光標位置和進行簡單編輯的常用編輯鍵與組合鍵。
鍵盤按鍵 | 說明 | 鍵盤按鍵 | 說明 |
---|---|---|---|
↑ | Cart+P,調用上一行 | Home | Ctrl+A,光標標置於當前行開頭 |
↓ | Ccrl+N,調用下一行 | End | Ctrl+E,光標置於當前行末尾 |
← | Cr+B,光標左移一個字符 | Esc | Ctrl+U,清除當前輸入行 |
→ | Ccrt+F,光標右移一個字符 | Delete | Ctrl+D,刪除光標處的字符 |
Ctrl+← | Ctrl+L,光標左移一個單詞 | Backspace | Ctrl+H,刪除光標前的字符 |
Ctrl+→ | Ctrl+R,光標右移一個單詞 | Alt+Backspace | 恢復上一次刪除 |
3.標點
在MATLAB語言中,一些標點符號也被賦予了特殊的意義或代表一定的運算。
標點 | 說明 | 標點 | 說明 |
---|---|---|---|
: | 冒號,具有多種應用功能 | % | 百分號,註釋標記 |
; | 分號,區分行及取消運行結果顯示 | ! | 驚歎號,調用操作系統運算 |
, | 逗號,區分列及函數參數分隔符 | = | 等號,賦值標記 |
() | 括號,指定運算的優先級 | ’ | 單引號,字符串的標識符 |
[] | 方括號,定義矩陣 | . | 小數點及對象域訪問 |
{} | 大括號,構造單元數組 | … | 續行符號 |
1.5 MATLAB R2018a的文件管理
1.5.1 當前文件夾瀏覽器和路徑管理器
工作文件夾窗口可顯示或改變當前文件夾,還可以顯示當前文件夾下的文件,以及提供文件搜索功能。與命令行窗口類似,該窗口也可以成爲一個獨立的窗口。
1.5.2 搜索路徑及其設置
MATLAB提供了專門的路徑搜索器來搜索存儲在內存中的M文件和其他相關文件,MATLAB自帶的文件所存放路徑都被默認包含在搜索路徑中,在MATLAB安裝目錄的"toolbox"
文件夾中包含了所有此類目錄和文件。
當用戶在MATLAB提示符後輸入一個字符串如polyfit
後,MATLAB進行的路徑搜索步驟如下:
(1)檢查polyfit
是不是MATLAB工作區內的變量名,如果不是,執行下一步。
(2)檢查polyfit
是不是一一個內置函數,如果不是,執行下一步。
(3)檢查當前文件夾下是否存在一個名爲polyfit.m
的文件,如果沒有,執行下一步。
(4)按順序檢查在所有MATLAB搜索路徑中是否存在polyfit.m
文件。
(5)如果仍然沒有找到polyfit
, MATLAB就會給出一條錯誤信息。
根據上述步驟可以推知,凡是不在搜索路徑上的內容(文件和文件夾),都不能被MATLAB搜索到;
當某一文件夾的父文件夾在搜索路徑中而其本身不在搜索路徑中時,則此文件夾並不會被搜索到。
一般情況下,MATLAB系統的函數,包括工具箱函數,都是在系統默認的搜索路徑之中的,但是用戶設計的函數有可能沒有被保存到搜索路徑下,很多情況容易造成MATLAB誤認爲該函數不存在。因此,只要把程序所在的目錄擴展成MATI AB的搜索路徑即可。
下面將介紹MATLAB搜索路徑的查看和設置方法。
1.查看MATLAB的搜索路徑
單擊MATLAB主界面菜單/工具欄中的“設置路徑”
,打開設置路徑對話框。
在命令行窗口輸入命令:
path
MATLAB將會把所有的搜索路徑列出來:
2.設置MATLAB的搜索路徑
方法(1):
在命令行窗口輸入:
edit path
或者
pathtool
方法(2):
在命令行窗口中輸入:
path(path,'path') %'path'是待添加的目錄的完整路徑
方法(3):
在命令行窗口中輸入:
addpath 'path' -begin %'path'是待添加的目錄的路徑,將新目錄添加到搜索路徑的開始
addpath 'path' -end %'path'是待添加的目錄的路徑,將新目錄添加到搜索路徑的末端
1.6 MATLAB R2018a的幫助系統
1.6.1 純文本幫助
MATLAB中的各個函數,不管是內建函數、M文件函數,還是MEX文件函數等,一股都有M文件的使用幫助和函數功能說明,各個工具箱通常情況下也具有一個與工具箱名稱相同的M文件來說明工具箱的構成內容。
因此,在MATLAB命令行窗口中,可以通過一些命令來獲取這些純文本的幫助信息。這些命令包括help、lookfor 、which.、doc、 get、 type 等。
help命令的常用調用方式爲:
help FUN
執行該命令可以查詢到有關於FUN函數的使用信息。
lookfor命令的常用調用方式爲:
lookfor topic
lookfor topic -all
執行該命令可以按照指定的關鍵字查找所有相關的M文件。
1.6.2 演示(Demos)幫助
通過Demos演示幫助,用戶可以更加直觀,快速地學習MATLAB中許多實用的知識。可以通過以下兩種方式打開演示幫助。
選擇MATLAB主界面菜單欄上的幫助下的示例命令。
在命令行窗口中輸入:
demos
1.6.3 幫助導航瀏覽器
幫助導航瀏覽器是MATLAB專門提供的一個獨立的幫助子系統。該系統包含的所有幫助文件都儲存在MATLAB安裝目錄下的help子目錄下。可以採用以下兩種方法打開幫助導航瀏覽器:
helpbrowser
或者:
doc
當命令後面有分號(半角符號格式)時,按Enter鍵後,命令行窗口中不顯示運算結果。如果無分號,則在命令行窗口中顯示運算結果。當希望先輸入多條語句,然後再同時執行它們時,則在輸入下一條命令時,要在按住Shift 鍵的同時按Enter鍵進行換行輸入。