官术网_书友最值得收藏!

第1章 MATLAB軟件入門

1.1 MATLAB簡介和工作環(huán)境

MATLAB是Matrix Laboratory的縮寫,是目前最優(yōu)秀的科技應用軟件之一,它將計算、可視化和編程等功能同時集于一個易于開發(fā)的環(huán)境.MATLAB是一個交互式開發(fā)系統,其基本數據要素是矩陣.它的表達式與數學、工程計算中常用的表達式形式十分相似,符合專業(yè)科技人員的思維方式和書寫習慣;它用解釋方式工作,編寫程序和運行同步,輸入程序立即得到結果,因此人機交互更加簡潔和智能化;它適用于多種平臺,隨著計算機軟、硬件的更新而及時升級,使得編程和調試效率大大提高.

MATLAB主要應用于數學計算、系統建模與仿真、數學分析與可視化、科學工程繪圖和用戶界面設計等.它已經成為高等數學、線性代數、自動控制理論、數理統計、數字信號處理等課程的基本工具,各國高校也紛紛將MATLAB正式列入本科生和研究生課程的教學計劃中,使其成為學生必須掌握的基本軟件之一.在設計和研究部門,MATLAB也被廣泛用來研究和解決各種工程問題.本書將以MATLAB R2023平臺為基礎進行介紹.

MATLAB也是一種計算機語言,其開發(fā)環(huán)境是一套方便用戶使用MATLAB函數和文件的工具集,其中包括許多圖形化用戶接口工具,方便用戶輸入輸出數據、管理變量,以及編寫和運行M文件.

MATLAB軟件啟動后的運行界面稱為MATLAB工作界面(MATLAB Desktop),它高度集成,主要由標簽欄、菜單欄、工具欄和各種不同用途的窗口組成.MATLAB R2023默認的工作界面如圖1-1所示.

1.1.1 MATLAB的系統結構

MATLAB系統由MATLAB開發(fā)環(huán)境、MATLAB語言、MATLAB數學函數庫、MATLAB圖形處理和MATLAB應用程序接口(API)5大部分組成.

1)MATLAB開發(fā)環(huán)境是一個集成的工作環(huán)境,包括MATLAB命令行窗口、文件編輯調試器、工作空間、數組編輯器和在線幫助文檔等.

2)MATLAB語言具有程序流程控制、函數、數據結構、輸入輸出和面向對象的編程特點,是基于矩陣/數組的語言.

3)MATLAB的數學函數庫包含了大量的計算算法,包括基本函數、矩陣運算和復雜算法等.

圖1-1 MATLAB R2023默認的工作界面

4)MATLAB圖形處理系統能夠將二維和三維數組的數據用圖形表示出來,并可以實現圖像處理、動畫顯示和表達式作圖等功能.

5)MATLAB應用程序接口使MATLAB語言能與其他編程語言進行交互.

1.1.2 MATLAB的工具箱

MATLAB的工具箱(Toolbox)是一個專業(yè)家族產品,工具箱實際上是MATLAB的M文件和高級MATLAB語言的集合,用于解決某一方面的專門問題或實現某一類的新算法.MATLAB的工具箱可以任意增減,給不同領域的用戶提供了豐富而強大的功能.每個人都可以生成自己的工具箱,因此很多研究成果被直接做成MATLAB工具箱發(fā)布,而且很多免費的MATLAB工具箱可以直接從網上獲得.

MATLAB常用工具箱如表1-1所示.

表1-1 MATLAB常用工具箱

(續(xù))

1.1.3 菜單和工具欄

1.菜單

MATLAB的主頁菜單包括“文件”“變量”“代碼”“SIMULINK”“環(huán)境”和“資源”.

1)“文件”菜單包括“新建腳本”“新建實時腳本”“新建”“打開”“查找文件”“比較”等選項.

●“新建腳本”:建立新腳本文件.

●“新建實時腳本”:在實時編輯器中創(chuàng)建實時腳本.

●“新建”:可以建立新腳本文件、函數、示例、類、繪圖、圖形用戶界面(GUI)、命令快捷方式、Simulink模型、狀態(tài)流程圖和Simulink項目.

●“打開”:打開需要的文件.

●“查找文件”:查找各類文件.

●“比較”:對比文件內容.

2)“變量”菜單包括“導入數據”“清洗數據”“變量”“保存工作區(qū)”“清空工作區(qū)”等選項.

●“導入數據”:從其他文件導入數據到工作區(qū)中.

●“清洗數據”:對數據進行清洗處理.

●“變量”:向工作區(qū)添加新的變量或打開工作區(qū)的變量.

●“保存工作區(qū)”:保存工作區(qū)中的變量.

●“清空工作區(qū)”:刪除工作區(qū)中的變量.

3)“代碼”菜單包括“收藏夾”“分析代碼”“運行并計時”和“清除命令”等選項.

●“收藏夾”:存放收藏的命令.

●“分析代碼”:分析M文件代碼.

●“運行并計時”:估計代碼運行效率.

●“清除命令”:刪除命令.

4)“SIMULINK”菜單包括打開Simulink Start Page窗口.

5)“環(huán)境”菜單包括“布局”“預設項”“設置路徑”和“附加功能”等選項.

●“布局”:設置窗口布置.

●“預設項”:設置命令行窗口的屬性,單擊該選項會彈出如圖1-2所示的屬性設置窗口.

圖1-2 “預設項”屬性設置窗口

●“設置路徑”:設置工作路徑.

●“附加功能”:獲取和管理附加功能等選項.

6)“資源”菜單包括“幫助”“社區(qū)”“請求支持”和“了解MATLAB”等選項.

●“幫助”:打開幫助相關內容.

●“社區(qū)”:打開MathWorks公司MATLAB討論社區(qū).

●“請求支持”:向客服發(fā)送幫助請求.

●“了解MATLAB”:進入MathWorks官網,按照自己的進度學習MATLAB和Simulink.

2.工具欄

工具欄是在編程環(huán)境下提供的對常用命令的快速訪問,MATLAB R2023的默認工具欄如圖1-3所示,當鼠標停留在工具欄按鈕上時,就會顯示出該工具按鈕的功能.

圖1-3 工具欄

在圖1-3中,從左至右,按鈕控件的功能依次為:

●保存、剪切、復制、粘貼當前文件。

●撤回、恢復上一次操作。

●切換窗口。

●打開MATLAB幫助系統。

●搜索文檔。

1.1.4 命令行窗口

MATLAB有許多使用方法,但首先需要掌握的是MATLAB的命令行窗口(Command Window)的基本表現形式和操作方式.可以把命令行窗口看成“草稿本”或“計算器”.在命令行窗口輸入MATLAB的命令和數據后按回車鍵,立即執(zhí)行運算并顯示結果,單獨顯示的命令行窗口如圖1-4所示.

圖1-4 命令行窗口

對于簡單的問題或一次性問題,在命令行窗口中直接輸入命令進行求解很方便,若對復雜問題仍采用這種方法(輸入一行,執(zhí)行一行),就顯得煩瑣笨拙.這時可在編輯/調試器中編寫M文件(后面章節(jié)將詳細介紹),即將語句一次全部寫入文件,并將該文件保存到MATLAB搜索路徑的目錄上,然后在命令行窗口中用文件名調用.

1.命令行的語句格式

MATLAB在命令行窗口中的語句格式為:

例1-1 在命令行窗口輸入命令,并查看結果.

MATLAB命令為:

運行結果為:

說明 命令行窗口中的每個命令行前會出現提示符“>>”,沒有“>>”符號的行則是顯示結果.

程序分析:

●命令行窗口內不同的命令采用不同的顏色顯示,默認輸入的命令、表達式以及計算結果等采用黑色字,字符串采用赭紅色字,關鍵字采用藍色字,注釋采用綠色字,如例1-1中的變量a是數值,b是字符串,c為邏輯True,命令行中的“if”“else”“end”為關鍵字,“%”后面的是注釋.

●如果在命令行窗口中輸入命令或函數的開頭一個或幾個字母,按“Tab”鍵則會出現以該字母開頭的所有命令函數列表,例如,輸入“end”命令的開頭字母“e”,然后按“Tab”鍵,顯示的命令函數列表如圖1-5所示.

●若命令行后面的分號(;)省略,則顯示運行結果;否則,不顯示運行結果.

●MATLAB變量是區(qū)分字母大小寫的,例如,myvar和MyVar表示的是兩個不同的變量.變量名最多可包含63個字符(字母、數字和下劃線),而且第一個字符必須是英文字母.

圖1-5 命令函數列表

●MATLAB支持輸入字母、漢字,但是標點符號必須在英文狀態(tài)下輸入.

2.在命令行窗口中編輯命令行

在MATLAB命令行窗口中不僅可以對輸入的命令進行編輯和運行,還可以使用編輯鍵和組合鍵對已輸入的命令進行回調、編輯和重運行。使用命令行窗口進行編輯的常用操作鍵如表1-2所示.

表1-2 常用操作鍵

3.數值計算結果的顯示格式

在命令行窗口中,默認情況下當數值為整數時,數值計算結果以整數顯示;當數值為實數時,以小數后4位的精度近似顯示,即以“short”數值的格式顯示,如果數值的有效數字超出了這一范圍,則以科學計數法顯示結果.需要注意的是,數值的顯示精度并不代表數值的存儲精度.

例1-2 在命令行窗口輸入數值,查看不同的顯示格式,并分析各個格式之間有什么相同與不同之處.

MATLAB命令為:

運行結果為:

用戶可以根據需要,對數值計算結果的顯示格式和字體風格、大小、顏色等進行設置.方法如下:

●在MATLAB的操作界面選擇菜單“文件”→“參數選擇”,則會出現參數設置對話框,在對話框的左欄選中“命令行窗口”項,在右邊的“數值格式”欄設置數據的顯示格式.

●直接在命令行窗口使用format命令來進行數值顯示格式的設置.format命令的語法格式如下:

format的數據顯示格式如表1-3所示.

表1-3 format的數據顯示格式

4.命令歷史記錄

默認布局下,命令歷史記錄不存在,需要在布局中選擇命令歷史窗口,用來記錄并顯示運行過的命令、函數和表達式.在默認設置下,該窗口會顯示自安裝以來所有使用過的命令的歷史記錄,并標明每次開啟MATLAB的時間.在命令歷史窗口選中某個命令并單擊鼠標右鍵可以顯示該命令的一些常用操作命令.

●Copy:復制.

●Evaluate Selection:執(zhí)行所選命令行并將結果顯示在命令行窗口中.

●Create M-file:創(chuàng)建并生成M文件.

●Delete Selection:刪除所選命令行.

●Delete to Selection:從當前行刪除到所選命令行.

●Delete Entire History:清除全部歷史命令.

5.命令行窗口常用命令

●who:將內存中的當前變量以簡單的形式列出.

●whos:列出當前內存變量的名稱、大小、類型等信息.

●clear:變量名1變量名2…:刪除內存中的變量.

●clf:清除圖像窗口.

●help:列出所有最基礎的幫助主題.

1.1.5 當前文件夾瀏覽器、路徑設置

1.當前文件夾簡介

當前文件夾窗口默認出現在MATLAB界面左上側的后臺,如圖1-1所示.工作目錄窗口可顯示或改變當前文件夾,還可以顯示當前文件夾下的文件,并提供文件搜索功能.

在使用MATLAB的過程中,為方便管理,用戶應當建立自己的工作目錄,即“用戶目錄”,用來保存自己創(chuàng)建的相關文件.將用戶目錄設置成當前目錄的方法有如下兩種:

1)直接在交互界面設置.在當前目錄瀏覽器左上方,有一個當前目錄設置區(qū),用戶可在“目錄設置欄”中直接填寫待設置的目錄名,或借助“選擇新文件夾”和鼠標選擇待設置的目錄.

2)指令設置法.通過path指令設置當前目錄是各種MATLAB版本都適用的基本方法.這種指令設置法比交互界面設置法適用范圍更大,它不僅能在指令窗口執(zhí)行,而且可以用在M文件中.

注意 通過以上方法設置的目錄,只有在當前開啟的MATLAB環(huán)境中有效.一旦MATLAB重新啟動,以上設置操作就必須重新進行.

2.設置MATLAB搜索路徑

MATLAB中無論是文件還是函數和數據,運行時都是按照一定的順序在搜索路徑中搜索并執(zhí)行的,如果要執(zhí)行的內容沒有在搜索路徑中,就會提示錯誤.

(1)MATLAB的基本搜索過程

當用戶在命令行窗口輸入一個命令行(如sin(x))時,MATLAB按照如下順序進行搜索:

首先在MATLAB內存中進行檢查,看“sin”和“x”是否為工作空間的變量或特殊變量;

然后在當前路徑上,檢查是否為MATLAB的內部函數(Built-in Function);

最后在MATLAB搜索路徑的所有其他目錄中,依次檢查是否有相應的“.m”或“.mex”文件存在.

不在搜索路徑上的內容不可能被搜索.實際搜索過程遠比上面描述的基本過程復雜.

(2)MATLAB搜索路徑的擴展和修改

假如用戶有多個目錄需要同時與MATLAB交換信息,或經常需要與MATLAB交換信息,那么應該把這些目錄放在MATLAB的搜索路徑上,使這些目錄上的文件或數據能被調用。假如某個目錄需要用來存放運行中產生的文件和數據,還應該把這個目錄設為當前目錄.

1)利用設置路徑對話框修改搜索路徑.引出搜索路徑對話框的常用方法如下:在命令行窗口中輸入pathtool.還可以選擇MATLAB主界面“主頁”標簽“環(huán)境”菜單下的“設置路徑”選項,彈出“設置路徑”窗口,如圖1-6所示.該窗口分為左右兩部分:左側的幾個按鈕用來添加目錄到搜索路徑,還可以從當前的搜索路徑中移除選擇的目錄;右側的列表框列出了已經被MATLAB添加到搜索路徑的目錄.

2)利用path指令設置路徑.利用path指令設置路徑的方法對任何版本的MATLAB都適用.

●path(path,’c:\my_path’) 把c:\my_path設置在搜索路徑的尾端.

●path(’c:\my_path’,path) 把c:\my_path設置在搜索路徑的首端.

圖1-6 搜索路徑設置

1.1.6 工作空間瀏覽器窗口和數組編輯器窗口

工作空間瀏覽器(Workspace Browser)窗口默認出現在MATLAB界面的右側,以列表的形式顯示MATLAB工作區(qū)中當前所有變量的名稱及屬性,包括變量的類型、長度及其占用的空間大小.

默認情況下,數組編輯器(Array Editor)不隨MATLAB操作界面的出現而啟動,啟動數組編輯器的方法有:

●在工作空間瀏覽器窗口中雙擊變量.

●在工作空間瀏覽器窗口中選擇變量,按鼠標右鍵在快捷菜單中選擇“打開所選內容”菜單,或單擊工具欄的打開變量按鈕.

1.1.7 M文件編輯/調試器窗口

對于比較簡單的問題和“一次性”問題,通過命令行窗口直接輸入一組命令來求解比較簡便、快捷,但是當待解決的問題所需的命令較多且命令比較復雜時,或當一組命令通過改變少量參數就可以反復被使用去解決不同的問題時,就需要利用M腳本文件來解決.

MATLAB通過自帶的M文件編輯器/調試器來創(chuàng)建和編輯M文件.M文件(帶.m擴展名的文件)類似于其他高級語言的源程序.M文件編輯器可以用來對M文件進行編輯和調試,也可以閱讀和編輯其他ASCII碼文件.M文件編輯器/調試器窗口由菜單欄、工具欄和文本編輯區(qū)等組成,是標準的Windows風格,如圖1-7所示.

1.1.8 MATLAB的常用文件格式

MATLAB R2023常用的文件有.m、.mat、.fig、.mdl、.mex、.p等類型.在MATLAB R2023工作界面的“新建”菜單中,可以創(chuàng)建M-File、Figure、Model等文件類型.下面介紹常見的幾種文件類型.

圖1-7 M文件編輯器/調試器窗口

1.程序文件

程序文件即M文件,包括主程序和函數文件,MATLAB的各工具箱中的大部分函數都是M文件.

M文件是ASCII文件,也可以在其他文本編輯器中顯示和輸入.

2.圖形文件

圖形文件的擴展名為.fig,創(chuàng)建.fig文件有如下幾種方法:

●在“文件”菜單中創(chuàng)建Figure文件.

●在“文件”菜單中創(chuàng)建GUI時生成.fig文件.

●用MATLAB的繪圖命令生成.fig文件.

3.模型文件

模型文件擴展名為.mdl,可以在“文件”菜單中創(chuàng)建模型時生成.mdl文件,也可以在Simulink環(huán)境中建模生成.

4.數據文件

數據文件即MAT文件,其文件的擴展名為.mat,用來保存工作空間的數據變量.在命令行窗口中可以通過命令將工作空間的變量保存到數據文件中或從數據文件中裝載變量到工作空間.

1)把工作空間中的數據存入MAT文件:

說明 文件名為MAT文件的名字,變量1、變量2可以省略,省略時則保存工作空間中的所有變量;參數表示保存的方式,其中’-ascii’表示保存為8位ASCII文本文件、’-append’表示在文件末尾添加變量,’-mat’表示二進制.mat文件等.

2)從數據文件中裝載變量到工作空間:

說明 變量1、變量2可以省略,省略時則裝載所有變量;如果文件名不存在,則報錯.

5.可執(zhí)行文件

可執(zhí)行文件即MEX文件,其文件的擴展名為.mex,由MATLAB的編輯器對M文件進行編譯后產生,其運行速度比直接執(zhí)行M文件快得多.

6.項目文件

項目文件的擴展名為.prj,項目文件能脫離MATLAB環(huán)境運行,在“部署工具”窗口中編譯生成,同時還會生成“distrib”和“src”兩個文件夾.

1.1.9 M文件

在編寫M文件時將啟動M文件編輯器/調試器窗口,進入MATLAB文件編輯器的方法如下:

●單擊MATLAB桌面上的新建腳本,打開空白M文件編輯器.

●單擊MATLAB桌面上的圖標,填寫所選文件名后,單擊“打開”按鈕,即可展示相應的M文件編輯器.

●用鼠標左鍵雙擊當前目錄窗口中所需的M文件,可直接打開相應的M文件編輯器.

M文件包括M命令文件(又稱腳本文件)和M函數文件.這兩種文件的結構有所不同,其一般結構包括函數聲明行、H1行、幫助文本和程序代碼4部分.

1)函數聲明行.函數聲明行是在M函數文件的第一行,只有M函數文件必須有,以“function”開頭并指定函數名、輸入輸出參數;M命令文件沒有函數聲明行.

2)H1行.H1行是幫助文字的第一行,一般為函數的功能信息,可以提供給help和lookfor命令查詢使用,給出M文件最關鍵的幫助信息,通常要包含大寫的函數文件名.在MATLAB的“當前文件夾”窗口中的“描述”欄就顯示了每個M文件的H1行.

3)幫助文本.幫助文本提供了對M文件更加詳細的說明信息,通常包含函數的功能、輸入輸出參數的含義、格式說明和作者、日期和版本記錄等信息,方便管理和查找M文件.

4)程序代碼.程序代碼由MATLAB語句和注釋語句構成,可以是簡單的幾個語句,也可以是通過流程控制結構組織而成的復雜程序,注釋語句提供對程序功能的說明,可以處于程序代碼中的任意位置.

M命令文件和M函數文件

就文件結構而言,M命令文件和M函數文件的區(qū)別是M命令文件沒有函數聲明行.

(1)M命令文件

M命令文件比較簡單,命令格式和前后位置與命令行窗口中的命令行都相同。M命令文件中除了沒有函數聲明行之外,H1行和幫助文字也經常省略.

說明

1)MATLAB在運行命令文件時,只是簡單地按順序從文件中讀取一條條命令,送到MATLAB命令行窗口中去執(zhí)行.

2)M命令文件運行產生的變量都駐留在MATLAB的工作空間中,可以很方便地查看變量,在命令行窗口中運行的命令都可以使用這些變量.

3)M命令文件的命令可以訪問工作空間的所有數據,因此要注意避免工作空間和命令文件中的同名變量相互覆蓋.一般在M命令文件的開頭使用“clear”命令清除工作空間的變量.

例1-3 編寫程序畫出衰減振蕩曲線及其包絡線的取值范圍是[04π].

MATLAB命令為:

運行結果如圖1-8所示.

圖1-8 例1-3的運行結果圖

程序分析:

將M文件保存在用戶自己的工作目錄下,命名為“exp_1”,先將工作目錄添加到搜索路徑中,或將MATLAB的“Current Directory”設置為工作目錄.

運行程序的方法:

●在命令行窗口輸入命令文件的文件名“exp_1”.

●在MATLAB編輯器菜單中點擊“運行”按鈕,或直接按快捷鍵F5,如圖1-9所示.

圖1-9 編輯器菜單

(2)M函數文件

M函數文件稍微復雜一些,可以有一個或多個函數,每個函數以函數聲明行開頭.使用M函數文件可以將大的任務分成多個小的子任務,每個函數實現一個獨立的子任務,通過函數間的相互調用完成復雜的功能,具有程序代碼模塊化、易于維護和修改的優(yōu)點.

說明

1)M函數文件中的函數聲明行是必不可少的.

2)M函數文件在運行過程中產生的變量都存放在函數本身的工作空間中,函數的工作空間是獨立的、臨時的,隨函數文件調用而產生并隨調用結束而刪除。在MATLAB運行過程中,如果運行多個函數,則產生多個臨時函數空間.

3)當文件執(zhí)行完最后一條命令或遇到“return”命令時結束函數的運行,同時函數空間的變量被清除.

4)一個M函數文件至少要定義一個函數.

函數聲明行的格式如下:

說明

●函數名是函數的名稱,保存時最好使函數名與文件名保持一致,當不一致時,MATLAB以文件名為準.

●輸入參數列表是函數接受的輸入參數,多個參數之間用“,”隔開.

●輸出參數列表是函數運算的結果,多個參數之間用“,”隔開.

例1-4 編寫一個函數,求方程ax2+bx+c=0的解.

MATLAB命令為:

調用函數文件計算jie(1,2,1)、jie(1,2,2)、jie(2,6,1).

運行結果為:

主站蜘蛛池模板: 乐清市| 虹口区| 乌恰县| 罗定市| 正镶白旗| 白玉县| 略阳县| 平山县| 景德镇市| 南开区| 苗栗市| 平安县| 聂荣县| 沂水县| 勃利县| 陈巴尔虎旗| 三明市| 衢州市| 绥棱县| 兴和县| 正蓝旗| 资源县| 准格尔旗| 新乐市| 筠连县| 东海县| 乃东县| 安义县| 临江市| 师宗县| 吴江市| 怀来县| 定陶县| 九寨沟县| 汉沽区| 明水县| 东山县| 观塘区| 东阳市| 武冈市| 翁源县|