《MATLAB基礎(chǔ)教程(第六版)(微課版)》 課件全套 薛山 ch01 MATLAB R2023b簡介 -ch12 文件和數(shù)據(jù)的導(dǎo)入與導(dǎo)出_第1頁
《MATLAB基礎(chǔ)教程(第六版)(微課版)》 課件全套 薛山 ch01 MATLAB R2023b簡介 -ch12 文件和數(shù)據(jù)的導(dǎo)入與導(dǎo)出_第2頁
《MATLAB基礎(chǔ)教程(第六版)(微課版)》 課件全套 薛山 ch01 MATLAB R2023b簡介 -ch12 文件和數(shù)據(jù)的導(dǎo)入與導(dǎo)出_第3頁
《MATLAB基礎(chǔ)教程(第六版)(微課版)》 課件全套 薛山 ch01 MATLAB R2023b簡介 -ch12 文件和數(shù)據(jù)的導(dǎo)入與導(dǎo)出_第4頁
《MATLAB基礎(chǔ)教程(第六版)(微課版)》 課件全套 薛山 ch01 MATLAB R2023b簡介 -ch12 文件和數(shù)據(jù)的導(dǎo)入與導(dǎo)出_第5頁
已閱讀5頁,還剩245頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

2025年2月4日第1頁第1章MATLABR2023b簡介MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2025年2月4日第2頁教學(xué)目標(biāo)了解MATLAB語言的基本功能和特點(diǎn)了解MATLAB的基本界面了解MATLAB的路徑搜索2025年2月4日第3頁教學(xué)內(nèi)容MATLAB簡介MATLABR2023b用戶界面MATLABR2023b的路徑搜索2025年2月4日第4頁MATLAB概述(1/3)MATLAB作為一種高級(jí)科學(xué)計(jì)算軟件,是進(jìn)行算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的交互式應(yīng)用開發(fā)環(huán)境。世界上許多科研工作者都在使用MATLAB產(chǎn)品來加快他們的科研進(jìn)程,縮短數(shù)據(jù)分析和算法開發(fā)的時(shí)間,研發(fā)出更加先進(jìn)的產(chǎn)品和技術(shù)。相對(duì)于傳統(tǒng)的C、C++或者Fortran語言,MATLAB提供了高效快速解決各種科學(xué)計(jì)算問題的方法。目前,MATLAB產(chǎn)品已經(jīng)被廣泛認(rèn)可為科學(xué)計(jì)算領(lǐng)域內(nèi)的標(biāo)準(zhǔn)軟件之一。2025年2月4日第5頁MATLAB概述(2/3)MATLAB可以被廣泛地應(yīng)用于不同領(lǐng)域,如信號(hào)與圖像處理、控制系統(tǒng)設(shè)計(jì)與仿真、通信系統(tǒng)設(shè)計(jì)與仿真、測(cè)量測(cè)試與數(shù)據(jù)采集、金融數(shù)理分析以及生物科學(xué)等。在MATLAB中內(nèi)嵌了豐富的數(shù)學(xué)、統(tǒng)計(jì)和工程計(jì)算函數(shù),使用這些函數(shù)進(jìn)行問題的分析解答,無論是問題的提出還是結(jié)果的表達(dá)都采用工程師習(xí)慣的數(shù)學(xué)描述方法,這一特點(diǎn)使MATLAB成為了數(shù)學(xué)分析、算法開發(fā)及應(yīng)用程序開發(fā)的良好環(huán)境。MATLAB是MathWorks產(chǎn)品家族中所有產(chǎn)品的基礎(chǔ)。附加的工具箱擴(kuò)展MATLAB基本環(huán)境用于解決特定領(lǐng)域的工程問題。2025年2月4日第6頁MATLAB概述(3/3)MATLAB有以下幾個(gè)特點(diǎn)。高級(jí)科學(xué)計(jì)算語言。代碼、數(shù)據(jù)文件的集成管理環(huán)境。算法設(shè)計(jì)開發(fā)的交互式工具。用于線性代數(shù)、統(tǒng)計(jì)、傅立葉分析、濾波器設(shè)計(jì)、優(yōu)化和數(shù)值計(jì)算的基本數(shù)學(xué)函數(shù)。2-D和3-D數(shù)據(jù)可視化。創(chuàng)建自定義工程師圖形界面的工具。與第三方算法開發(fā)工具——C/C++、FORTRAN、Java、COM、MicrosoftExcel——集成開發(fā)基于MATLAB的算法。2025年2月4日第7頁MATLAB的基本功能(1/2)MATLAB將高性能的數(shù)值計(jì)算和可視化功能集成,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應(yīng)用于科學(xué)計(jì)算、控制系統(tǒng)和信息處理等領(lǐng)域的分析、仿真和設(shè)計(jì)工作,而且利用MATLAB產(chǎn)品的開放式結(jié)構(gòu),可以很容易地對(duì)MATLAB的功能進(jìn)行擴(kuò)充,從而在不斷深化對(duì)問題認(rèn)識(shí)的同時(shí),不斷完善MATLAB產(chǎn)品以提高產(chǎn)品自身的競爭能力。2025年2月4日第8頁MATLAB的基本功能(2/2)

數(shù)學(xué)計(jì)算功能圖形化顯示功能M語言編程功能編譯功能圖形用戶界面開發(fā)功能

Simulink建模仿真功能自動(dòng)代碼生成功能2025年2月4日第9頁MATLAB的更新(1/1)MATLAB處于不斷的發(fā)展中,MathWorks公司每年會(huì)定期發(fā)布MATLAB的新版本。MATLABR2023b更新了多個(gè)產(chǎn)品模塊,添加了新的特性,包括MATLAB、Simulink和Polyspace產(chǎn)品的新功能,以及對(duì)其他產(chǎn)品的更新和補(bǔ)丁修復(fù)。新版R2023b相較于之前的版本,增加了一些新的功能和改進(jìn),如增加了自動(dòng)化的功能向量化、并行計(jì)算、機(jī)器學(xué)習(xí)、信號(hào)處理等方面的新算法;改進(jìn)了圖形界面和性能;同時(shí)還加強(qiáng)了與其他編程語言的集成,如Python、Java等,方便用戶進(jìn)行跨語言開發(fā)。2025年2月4日第10頁啟動(dòng)MATLABR2023b(1/1)選擇“開始”|“所有程序”|MATLAB|R2023b|MATLABR2023b命令,或者直接雙擊桌面上的MATLAB圖標(biāo),啟動(dòng)MATLABR2023b。2025年2月4日第11頁MATLABR2023b的主界面(1/1)當(dāng)前目錄窗口快捷按鈕編輯器窗口搜索欄帶狀工具欄當(dāng)前目錄路徑文件詳細(xì)信息窗口工作區(qū)窗口命令提示符命令窗口2025年2月4日第12頁MATLABR2023b的帶狀工具欄(1/3)2025年2月4日第13頁MATLABR2023b的帶狀工具欄(2/3)2025年2月4日第14頁MATLABR2023b的帶狀工具欄(3/3)2025年2月4日第15頁MATLABR2023b的窗口命令窗口命令歷史記錄窗口工作區(qū)窗口當(dāng)前目錄窗口2025年2月4日第16頁MATLAB的當(dāng)前路徑查看MATLAB當(dāng)前路徑的方式有兩種:查看工具欄中的當(dāng)前路徑欄,或者在命令窗口中輸入查看命令。>>cdD:\ProgramFiles\MATLAB\R2023b\bin用戶可以通過工具欄中的當(dāng)前路徑工具改變當(dāng)前路徑。2025年2月4日第17頁MATLAB的路徑搜索(1/2)路徑設(shè)置選擇MATLAB窗口中的“主頁”|“環(huán)境”|“設(shè)置路徑”命令,打開“設(shè)置路徑”窗口。用戶可以單擊“添加文件夾”或者“添加并包含子文件夾”按鈕添加選中目錄或者添加選中目錄及其子目錄。單擊后,打開瀏覽文件夾對(duì)話框,選擇待添加的路徑。在命令窗口中輸入path命令可以查看MATLAB中的搜索路徑,>>path MATLABPATHD:\Documents\MATLABD:\ProgramFiles\MATLAB\R2023b\toolbox\matlab\addon_enable_disable_management\matlab:\Programiles\MATLAB\R2023b\toolbox\matlab\addon_enable_disable_management\matlabD:\ProgramFiles\MATLAB\R2023b\toolbox\matlab\addon_updates\matlabD:\ProgramFiles\MATLAB\R2023b\toolbox\matlab\addons… 2025年2月4日第18頁MATLAB的路徑搜索(2/2)MATLAB的搜索順序以元素foo為例:1)查找工作區(qū)中是否存在名為foo的變量;2)在當(dāng)前路徑中查找是否存在名foo.m的文件;3)按照順序查找搜索路徑中是否存在該文件。如果存在多個(gè)名為foo.m的文件,則調(diào)用首先查到的文件。2025年2月4日第19頁第2章MATLAB的基本使用方法

MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2025年2月4日第20頁教學(xué)目標(biāo)

掌握利用MATLABR2023b的命令窗口進(jìn)行簡單的數(shù)學(xué)運(yùn)算掌握常用的操作命令和快捷鍵了解MATLABR2023b的數(shù)據(jù)類型了解MATLABR2023b的操作符了解MATLABR2023b的基本數(shù)學(xué)函數(shù)了解MATLABR2023b腳本編程2025年2月4日第21頁教學(xué)內(nèi)容簡單的數(shù)學(xué)運(yùn)算常用的操作命令和快捷鍵MATLABR2023b的數(shù)據(jù)類型MATLABR2023b的運(yùn)算符MATLAB的一些基礎(chǔ)函數(shù)MATLAB腳本文件2025年2月4日第22頁簡單的數(shù)學(xué)運(yùn)算(1/5)最簡單的計(jì)算器使用法直接輸入法存儲(chǔ)變量法在大多數(shù)情況下,MATLAB對(duì)空格不予處理,因此在書寫表達(dá)式時(shí),可以利用空格調(diào)整表達(dá)式的格式,使表達(dá)式更易于閱讀。在MATLAB表達(dá)式中,遵守四則運(yùn)算法則,與通常法則相同。即運(yùn)算從左到右進(jìn)行,乘法和除法優(yōu)先于加減法,指數(shù)運(yùn)算優(yōu)先于乘除法,括號(hào)的運(yùn)算級(jí)別最高;在有多重括號(hào)存在的情況下,從括號(hào)的最里邊向最外邊逐漸擴(kuò)展。需要注意的是,在MATLAB中只用小括號(hào)代表運(yùn)算級(jí)別,中括號(hào)只用于生成向量和矩陣,花括號(hào)用于生成單元數(shù)組。2025年2月4日第23頁簡單的數(shù)學(xué)運(yùn)算(2/5)MATLAB中的常用數(shù)學(xué)函數(shù)

MATLAB提供的基本初等函數(shù)包括三角函數(shù)、指數(shù)函數(shù)和對(duì)數(shù)函數(shù)、復(fù)數(shù)函數(shù)、取整和求余函數(shù)、坐標(biāo)變換函數(shù)、數(shù)理函數(shù)和一些特殊函數(shù)。2025年2月4日第24頁簡單的數(shù)學(xué)運(yùn)算(3/5)MATLAB的數(shù)學(xué)運(yùn)算符需要注意的是,右除和左除的意義并不相同。右除為常規(guī)的除法,而左除的意義為:a\b=b/a。2025年2月4日第25頁簡單的數(shù)學(xué)運(yùn)算(4/5)

標(biāo)點(diǎn)符號(hào)的使用在MATLAB中,標(biāo)點(diǎn)符號(hào)有著充分的意義,可以用標(biāo)點(diǎn)符號(hào)進(jìn)行運(yùn)算,或者標(biāo)點(diǎn)符號(hào)可以包含特定的意義。2025年2月4日第26頁簡單的數(shù)學(xué)運(yùn)算(5/5)分號(hào)(;)分號(hào)用于區(qū)分?jǐn)?shù)組的行,或者用于一個(gè)語句的結(jié)尾處,取消運(yùn)行顯示。百分號(hào)(%)該符號(hào)用于在程序文本中添加注釋,增加程序的可讀性。百分號(hào)之后的文本都將視作注釋,系統(tǒng)不對(duì)其進(jìn)行編譯。2025年2月4日第27頁常用的操作命令和快捷鍵(1/3)為方便用戶操作,MATLAB中定義了一些快捷鍵。掌握一些常用的操作命令和快捷鍵,可以使得對(duì)MATLAB的操作更加便利。2025年2月4日第28頁常用的操作命令和快捷鍵(3/3)快捷鍵功能快捷鍵功能↑(Ctrl+p)調(diào)用上一行Home(ctrl+a)移動(dòng)到命令行開頭↓(Ctrl+n)調(diào)用下一行End(ctrl+e)移動(dòng)到命令行結(jié)尾←(Ctrl+b)光標(biāo)左移一個(gè)字符Ctrl+Home移動(dòng)到命令窗口頂部→(Ctrl+f)光標(biāo)右移一個(gè)字符Ctrl+End移動(dòng)到命令窗口底部Ctrl+←光標(biāo)左移一個(gè)單詞Shift+Home選中光標(biāo)和表達(dá)式開頭之間的內(nèi)容Ctrl+→光標(biāo)右移一個(gè)單詞Shift+End選中光標(biāo)和表達(dá)式結(jié)尾之間的內(nèi)容Esc取消當(dāng)前輸入行Ctrl+k剪切光標(biāo)和表達(dá)式結(jié)尾之間的內(nèi)容2025年2月4日第29頁常用的操作命令和快捷鍵(2/3)命令功能命令功能cd顯示或改變工作目錄hold圖形保持命令clc清空命令窗口load加載指定文件中的變量clear清除工作區(qū)中的變量pack整理內(nèi)存碎片clf清除圖形窗口path顯示搜索目錄diary日志文件命令quit退出MATLABdir顯示當(dāng)前目錄下文件save保存內(nèi)存變量disp顯示變量或文字的內(nèi)容type顯示文件內(nèi)容echo命令窗口信息顯示開關(guān)2025年2月4日第30頁MATLAB的數(shù)據(jù)類型(1/1)整數(shù)浮點(diǎn)數(shù)復(fù)數(shù)邏輯變量各種數(shù)據(jù)類型之間的轉(zhuǎn)換數(shù)據(jù)類型操作函數(shù)變量系統(tǒng)預(yù)定義的特殊變量2025年2月4日第31頁整數(shù)(1/1)MATLAB支持8位、16位、32位和64位的有符號(hào)和無符號(hào)整數(shù)數(shù)據(jù)類型。整數(shù)數(shù)據(jù)類型除了定義范圍不同外,具有相同的性質(zhì)。2025年2月4日第32頁浮點(diǎn)數(shù)(1/1)MATLAB的默認(rèn)數(shù)據(jù)類型是雙精度類型(double)。為了節(jié)省存儲(chǔ)空間,MATLAB也支持單精度數(shù)據(jù)類型的數(shù)組。單精度和雙精度數(shù)據(jù)類型的取值范圍和精度可以通過例2-12的方式進(jìn)行查看2025年2月4日第33頁復(fù)數(shù)(1/2)復(fù)數(shù)由兩個(gè)部分組成:實(shí)部和虛部?;咎摂?shù)單位等于,在MATLAB中虛數(shù)單位由i或者j表示。MATLAB中可以通過兩種方法創(chuàng)建復(fù)數(shù),第一種方法為直接輸入法,另一種創(chuàng)建復(fù)數(shù)的方法為通過complex函數(shù)。2025年2月4日第34頁復(fù)數(shù)(2/2)complex函數(shù)的調(diào)用方法如下。c=complex(a,b),返回結(jié)果c為復(fù)數(shù),其實(shí)部為a,虛部為b。輸入?yún)?shù)a和b可以為標(biāo)量,或者維數(shù)、大小相同的向量、矩陣或者多維數(shù)組,輸出參數(shù)和a和b的結(jié)構(gòu)相同。a和b可以有不同的數(shù)據(jù)類型,當(dāng)a和b為各種不同的類型時(shí),返回值分別為:當(dāng)a和b中有一個(gè)為單精度時(shí),返回結(jié)果為單精度;如果a和b其中一個(gè)為整數(shù)類型,則另外一個(gè)必須有相同的整數(shù)類型,或者為雙精度型,返回結(jié)果c為相同的整數(shù)類型。c=complex(a),只有一個(gè)輸入?yún)?shù),返回結(jié)果c為復(fù)數(shù),其實(shí)部為a,虛部為0。但是此時(shí)c的數(shù)據(jù)類型為復(fù)數(shù)。2025年2月4日第35頁邏輯變量(1/4)邏輯數(shù)據(jù)類型通過1和0分別表示邏輯真和邏輯假。一些MATLAB函數(shù)或操作符會(huì)返回邏輯真或邏輯假表示條件是否滿足。如表達(dá)式(5*10)>40返回邏輯真。在MATLAB中,存在邏輯數(shù)組,如下面的表達(dá)式返回邏輯數(shù)組:>>[3040506070]>40ans=001112025年2月4日第36頁邏輯變量(2/4)邏輯數(shù)組的創(chuàng)建創(chuàng)建邏輯數(shù)組的最簡單的方法為直接輸入元素的值為true或者false邏輯數(shù)組也可以通過邏輯表達(dá)式生成2025年2月4日第37頁邏輯變量(3/4)邏輯數(shù)組的應(yīng)用用于條件表達(dá)式 如果僅當(dāng)條件成立時(shí)執(zhí)行某段代碼,可以應(yīng)用邏輯數(shù)組進(jìn)行判斷和控制用于數(shù)組索引 在MATLAB中支持通過一個(gè)數(shù)組對(duì)另一個(gè)數(shù)組進(jìn)行索2025年2月4日第38頁邏輯變量(4/4)邏輯數(shù)組的判斷MATLAB中提供了一組函數(shù)用于判斷數(shù)組是否為邏輯數(shù)組函數(shù)功能whos(x)顯示數(shù)組x的元素值及數(shù)據(jù)類型islogical(x)判斷數(shù)組x是否為邏輯數(shù)組,是則返回真isa(x,'logical')判斷數(shù)組x是否為邏輯數(shù)組,是則返回真class(x)返回?cái)?shù)組x的數(shù)據(jù)類型cellfun('islogical',x)判斷單元數(shù)組的每個(gè)單元是否為邏輯值2025年2月4日第39頁各種數(shù)據(jù)類型之間的轉(zhuǎn)換(1/1)在MATLAB中,各種數(shù)據(jù)類型之間可以互相轉(zhuǎn)換,轉(zhuǎn)換方式為:1)datatype(variable),其中datatype為目標(biāo)數(shù)據(jù)類型,variable為待轉(zhuǎn)換的變量;2)cast(x,’type’),將x的類型轉(zhuǎn)換為’type’指定的類型。轉(zhuǎn)換時(shí),如果由高精確度數(shù)據(jù)類型轉(zhuǎn)換為低精確度數(shù)據(jù)類型,則對(duì)數(shù)據(jù)進(jìn)行四舍五入;如果由定義范圍大的數(shù)據(jù)類型轉(zhuǎn)換為定義范圍小的數(shù)據(jù)類型,則返回目標(biāo)數(shù)據(jù)類型的上限或下限。2025年2月4日第40頁數(shù)據(jù)類型操作函數(shù)(1/1)函數(shù)描述double創(chuàng)建或轉(zhuǎn)化為雙精度類型single創(chuàng)建或轉(zhuǎn)化為單精度類型int8,int16,int32,int64創(chuàng)建或轉(zhuǎn)化為相應(yīng)的有符號(hào)整數(shù)類型uint8,uint16,uint32,uint64創(chuàng)建或轉(zhuǎn)化為相應(yīng)的無符號(hào)整數(shù)類型isnumeric判斷是否為整數(shù)或浮點(diǎn)數(shù),是則返回true(或者1)isinteger判斷是否為整數(shù),是則返回true(或者1)isfloat判斷是否為浮點(diǎn)數(shù),是則返回true(或者1)isa(x,’type’)判斷是否為‘type’

指定的類型,是則返回true(或者1)cast(x,’type’)設(shè)置x的類型為’type’intmax(‘type’)’type’

類型的最大整數(shù)值intmin(‘type’)’type’

類型的最小整數(shù)值realmax(‘type’)’type’

類型的最大浮點(diǎn)實(shí)數(shù)值realmin(‘type’)’type’

類型的最小浮點(diǎn)實(shí)數(shù)值eps(‘type’)’type’

類型eps值eps(‘x’)變量x的eps值2025年2月4日第41頁變量(1/1)MATLAB的變量命名規(guī)則與其他計(jì)算機(jī)語言類似,這一節(jié)介紹MATLAB的命名規(guī)則。首先,變量名必須是一個(gè)單一的詞,不能包含空格,另外其命名必須符合下列規(guī)則:(1)變量名區(qū)分大小寫。如pi和Pi是兩個(gè)不同的變量。在命令窗口中輸入如下的命令,查看其結(jié)果。(2)變量名長度不超過63個(gè)字符,超過的部分將會(huì)被忽略。(3)變量名必須以字母開始,其后可以為字母、數(shù)字或者下劃線。MATLAB中的變量名不支持其他符號(hào),因?yàn)槠渌?hào)在MATLAB中具有特殊的意義。

2025年2月4日第42頁系統(tǒng)預(yù)定義的特殊變量(1/1)

名描

述ans結(jié)果顯示的默認(rèn)變量名beep使計(jì)算機(jī)發(fā)出“嘟嘟”聲pi圓周率eps浮點(diǎn)數(shù)的精度(2.2204e-016),MALTAB中的最小數(shù)inf無窮大,如當(dāng)除數(shù)為0時(shí)系統(tǒng)返回infNaN或nan表示不定數(shù),即結(jié)果不能確定i或j虛數(shù)單位nargin函數(shù)的輸入?yún)?shù)個(gè)數(shù)nargout函數(shù)的輸出參數(shù)個(gè)數(shù)realmin可用的最小正實(shí)數(shù)2.2251e-308realmax可用的最大正實(shí)數(shù)值1.7977e+308bitmax可用的最大正整數(shù)(以雙精度格式存儲(chǔ))varargin可變的函數(shù)輸入?yún)?shù)個(gè)數(shù)varargout可變的函數(shù)輸出參數(shù)個(gè)數(shù)2025年2月4日第43頁MATLAB的運(yùn)算符(1/3)關(guān)系運(yùn)算符MATLAB的關(guān)系運(yùn)算符能用來比較兩個(gè)相同大小的數(shù)組,或用來比較一個(gè)數(shù)組和一個(gè)標(biāo)量。MATLAB的關(guān)系運(yùn)算符包括所有常用的比較運(yùn)算符。

運(yùn)算符說明運(yùn)算符說明<小于<=小于或等于>大于>=大于或等于==等于~=不等于2025年2月4日第44頁MATLABR2023b的運(yùn)算符(2/3)邏輯運(yùn)算符邏輯運(yùn)算符主要包括“與”、“或”和“非”。使用邏輯運(yùn)算符可以將多個(gè)表達(dá)式組合在一起,或者對(duì)關(guān)系表達(dá)式取反。運(yùn)算符描述&與&&與,只適用于標(biāo)量。a&&b,當(dāng)a的值為假時(shí),則忽略b的值|或||或,只適用于標(biāo)量。a||b,當(dāng)a的值為真時(shí),則忽略b的值~非2025年2月4日第45頁MATLABR2023b的運(yùn)算符(3/3)運(yùn)算符優(yōu)先級(jí)MATLAB首先執(zhí)行具有較高優(yōu)先級(jí)的運(yùn)算,然后執(zhí)行具有較低優(yōu)先級(jí)的運(yùn)算;如果兩個(gè)運(yùn)算的優(yōu)先級(jí)相同,則按從左到右的順序執(zhí)行。運(yùn)算符圓括號(hào)()轉(zhuǎn)置(.’),共軛轉(zhuǎn)置(‘),乘方(.^),矩陣乘方(^)標(biāo)量加法(+)、減法(-)、取反(~)乘法(.*),矩陣乘法(*),右除(./),左除(.\),矩陣右除(/),矩陣左除(\)加法(+),減法(-),邏輯非(~)冒號(hào)運(yùn)算符(:)小于(<),小于等于(<=),大于(>),大于等于(>=),等于(==),不等于(~=)數(shù)組邏輯與(&)數(shù)組邏輯或(|)邏輯與(&&)邏輯或(||)2025年2月4日第46頁MATLAB的一些基礎(chǔ)函數(shù)(1/1)位操作函數(shù)邏輯運(yùn)算函數(shù)集合函數(shù)時(shí)間與日期函數(shù)

2025年2月4日第47頁位操作函數(shù)(1/1)所有數(shù)據(jù)在計(jì)算機(jī)中是轉(zhuǎn)化為二進(jìn)制進(jìn)行操作的,因此,有必要對(duì)數(shù)據(jù)進(jìn)行按位操作。

數(shù)功

能調(diào)用格式舉例bitand按位進(jìn)行“與”操作C=bitand(A,B)bitcmp按位進(jìn)行“補(bǔ)”操作C=bitcmp(A),C=bitcmp(A,n)bitget獲取指定位置的值C=bitget(A,bit)bitmax獲取雙精度浮點(diǎn)整數(shù)的最大值bitmaxbitor按位進(jìn)行“或”操作C=bitor(A,B)bitset設(shè)定指定位置的值C=bitset(A,bit),C=bitset(A,bit,v)bitshift移位操作C=bitshift(A,k),C=bitshift(A,k,n)bitxor按位進(jìn)行“異或”操作C=bitxor(A,B)swapbytes按字節(jié)進(jìn)行“逆”操作Y=swapbytes(X)2025年2月4日第48頁邏輯運(yùn)算函數(shù)(1/1)

數(shù)功

能調(diào)用格式舉例all判斷數(shù)組元素是否全部非零B=all(A),B=all(A,dim)any判斷數(shù)組是否存在非零元素B=any(A),B=any(A,dim)false邏輯0(假)False,false(n)等find查找非零元素的下標(biāo)及其值ind=find(X),ind=find(X,k)等is*查看元素狀態(tài)代表一類函數(shù),如iscell等isa判斷輸入是否為給定類的對(duì)象K=isa(obj,'class_name')iskeyword判斷字符串是否為MATLAB關(guān)鍵字tf=iskeyword('str'),iskeywordstrisvarname判斷字符串是否為有效變量名tf=isvarname('str'),isvarnamestrlogical將數(shù)值變量轉(zhuǎn)化為邏輯變量K=logical(A)true邏輯1(真)True,true(n)等xor邏輯“異或”C=xor(A,B)2025年2月4日第49頁集合函數(shù)(1/1)

數(shù)功

能調(diào)用格式舉例intersect計(jì)算兩個(gè)集合的交集c=intersect(A,B)ismember集合的數(shù)組成員tf=ismember(A,S)tf=ismember(A,S,'rows')setdiff向量的集合差c=setdiff(A,B)c=setdiff(A,B,'rows')issorted判斷幾何元素是否按序排列tf=issorted(A)tf=issorted(A,'rows')setxor集合異或c=setxor(A,B)c=setxor(A,B,'rows')union兩個(gè)向量的集合并c=union(A,B)c=union(A,B,'rows')unique刪除集合中的重復(fù)元素b=unique(A)b=unique(A,'rows')2025年2月4日第50頁時(shí)間與日期函數(shù)(1/1)

數(shù)功

能調(diào)用格式舉例addtodate通過域修改日期R=addtodate(D,N,F)calendar返回指定月的日歷c=calendar,c=calendar(d)clock返回當(dāng)前時(shí)間的向量c=clockcputime返回CPU運(yùn)行時(shí)間cputimedate返回當(dāng)前日期字符串str=datedatenum將時(shí)間和日期轉(zhuǎn)化為日期格式N=datenum(V),N=datenum(S,F)datestr將時(shí)間和日期轉(zhuǎn)化為字符串格式S=datestr(V),S=datestr(N)datevec將時(shí)間和日期轉(zhuǎn)化為向量格式V=datevec(N),V=datevec(S,F)eomday返回指定月的最后一天E=eomday(Y,M)etime時(shí)間向量之間的時(shí)間間隔e=etime(t2,t1)now當(dāng)前日期及時(shí)間t=nowtic,toc計(jì)時(shí)器ticanystatementstocweekday返回指定日期的星期日期[N,S]=weekday(D)2025年2月4日第51頁MATLAB腳本文件(1/4)對(duì)于一些簡單的問題,當(dāng)需要的命令數(shù)很少時(shí),用戶可以直接在MATLAB的命令窗口中輸入命令。但是,對(duì)于多數(shù)問題,所需的命令較多,或者需要邏輯運(yùn)算,進(jìn)行流程控制,此時(shí)采用直接輸入命令的方法則會(huì)引起不便。針對(duì)這些問題,一個(gè)合理的解決方法是使用腳本文件。腳本文件不接受輸入?yún)?shù),不返回任何值,而是代碼的結(jié)合,該方法允許用戶將一系列MATLAB命令輸入到一個(gè)簡單的腳本文件中,只要在MATLAB命令窗口中執(zhí)行該文件,則會(huì)依次執(zhí)行該文件中的命令。2025年2月4日第52頁MATLAB腳本文件(2/4)腳本文件的用法新建腳本文件(即M文件)可以通過4種方式進(jìn)行:單擊“主頁”工具面板區(qū)域的“新建腳本”按鈕

;單擊“主頁”工具面板區(qū)域的“新建”按鈕

,在打開的下拉菜單中選擇“腳本”選項(xiàng);在當(dāng)前目錄窗口中右擊,在彈出的菜單中選擇“新建”|“腳本”命令;使用快捷鍵Ctrl+N。新建后系統(tǒng)會(huì)打開文件編輯窗口,在窗口中輸入文件內(nèi)容。2025年2月4日第53頁MATLAB腳本文件(3/4)塊注釋在MATLAB較早的版本中,注釋是逐行進(jìn)行的,采用百分號(hào)(%)進(jìn)行標(biāo)記。逐行注釋不利于用戶增加和修改注釋內(nèi)容。在MATLAB7.0及以后的版本中,用戶可以使用“%{”和“%}”符號(hào)進(jìn)行塊注釋,“%{”和“%}”分別代表注釋塊的起始和結(jié)束。2025年2月4日第54頁MATLAB腳本文件(4/4)代碼單元一個(gè)代碼單元指用戶在M文件中指定的一段代碼,以一個(gè)代碼單元符號(hào)(兩個(gè)百分號(hào)加空格,即“%%”為開始標(biāo)志,到另一個(gè)代碼單元符號(hào)結(jié)束,如果不存在代碼單元符號(hào),則直到該文件結(jié)束。用戶可以通過MATLAB編輯器中的cell菜單創(chuàng)建和管理代碼單元。需要注意的是,代碼單元只能在MATLAB編輯器窗口中創(chuàng)建和使用,而在MATLAB命令窗口中是無效的。當(dāng)作命令窗口中運(yùn)行M文件時(shí),將執(zhí)行文件中的全部語句。2025年2月4日第55頁第3章數(shù)組和向量MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2025年2月4日第56頁教學(xué)目標(biāo)

掌握數(shù)組和向量的概念與性質(zhì)掌握數(shù)組與向量的操作和運(yùn)算方法了解數(shù)組與向量的實(shí)際應(yīng)用2025年2月4日第57頁教學(xué)內(nèi)容MATLAB數(shù)組創(chuàng)建數(shù)組數(shù)組操作MATLAB向量2025年2月4日第58頁MATLAB數(shù)組(1/1)

數(shù)組是MATLAB中的基本構(gòu)件,數(shù)組中的單個(gè)數(shù)據(jù)項(xiàng)稱為元素。任何變量在MATLAB中都是以數(shù)組形式存儲(chǔ)和運(yùn)算的。按照數(shù)組元素個(gè)數(shù)和排列方式分類按照數(shù)組的存儲(chǔ)方式分類2025年2月4日第59頁創(chuàng)建數(shù)組(1/1)可以通過直接輸入數(shù)值來創(chuàng)建數(shù)組,也可以通過MATLAB內(nèi)置函數(shù)來創(chuàng)建具有某一特點(diǎn)的數(shù)組。使用“;”或者另起一行表明一行的結(jié)束,如A=[2,5,7;1,3,42]。函數(shù)zeros(m,n)與ones(m,n)分別產(chǎn)生填充值為0或1的m行n列的數(shù)組。函數(shù)rand(m,n)與randn(m,n)分別產(chǎn)生取值為0~1之間的隨機(jī)數(shù)的數(shù)組。函數(shù)diag()具有多種形式,最常用的是diag(A),其中A為一數(shù)組,它將A的對(duì)角線上的元素作為向量返回;diag(V),其中V為一向量,它返回一個(gè)對(duì)角線為V的方陣。MATLAB還提供了magic(m)函數(shù),它產(chǎn)生一個(gè)填充1到m2之間數(shù)字的數(shù)組,其組織方式使得每一行、每一列以及對(duì)角線上的元素分別加起來等于相同的數(shù)。2025年2月4日第60頁數(shù)組操作(1/1)

獲取數(shù)組中的元素可以通過將需要獲取元素的索引值用括號(hào)括起來的方式對(duì)數(shù)組中的元素進(jìn)行尋址,其中第一個(gè)值為行索引值,第二個(gè)值為列索引值。也可以向數(shù)組中存儲(chǔ)數(shù)值。如果在超出數(shù)組范圍的位置寫入時(shí),MATLAB將自動(dòng)對(duì)數(shù)組進(jìn)行擴(kuò)充。如果在數(shù)組當(dāng)前元素位置和將要寫入新數(shù)值的位置之間缺失數(shù)據(jù)的話,MATLAB會(huì)將缺失數(shù)據(jù)填充為0。2025年2月4日第61頁數(shù)組操作(2/2)數(shù)組算術(shù)操作數(shù)組邏輯運(yùn)算使用庫函數(shù)數(shù)組連接數(shù)組切片數(shù)組重排線性化數(shù)組2025年2月4日第62頁MATLAB向量(1/1)向量是對(duì)相似數(shù)據(jù)項(xiàng)的集合進(jìn)行分組的最簡單方式,向量是數(shù)據(jù)的一維分組。向量中單個(gè)的數(shù)據(jù)項(xiàng)通常稱為元素(element)。向量元素的兩個(gè)獨(dú)立且截然不同的屬性(數(shù)值及在向量中的位置)決定了其在某一特定向量中的唯一性。2025年2月4日第63頁創(chuàng)建向量(1/1)創(chuàng)建向量有兩種方法:使用一系列常數(shù)來創(chuàng)建向量。通過對(duì)已有的向量進(jìn)行操作產(chǎn)生新的向量。

2025年2月4日第64頁向量尺寸(1/1)向量有一個(gè)專門的屬性:向量的長度。在多數(shù)情況下,該長度在向量創(chuàng)建時(shí)就已固定。MATLAB能夠通過插入或刪除元素來增加或減小向量的長度。函數(shù)length(V)返回?cái)?shù)組大小中的最大值——對(duì)于向量,該數(shù)值即為其長度。2025年2月4日第65頁向量索引(1/1)數(shù)值索引邏輯索引

注意:命令窗口中顯示的邏輯變量值是用1代表真,用0代表假。2025年2月4日第66頁縮短向量(1/1)注意:現(xiàn)實(shí)中很少將縮短向量作為對(duì)問題的正確求解方法,而且這樣做可能會(huì)導(dǎo)致邏輯混亂。有可能的話,使用索引來對(duì)需要保留的元素進(jìn)行復(fù)制。2025年2月4日第67頁向量操作(1/1)MATLAB語言的本質(zhì)核心在于具有豐富的數(shù)組和向量操作工具。有3種方法直接從對(duì)標(biāo)量的操作推廣而來:(1)算術(shù)操作。(2)邏輯操作。(3)使用庫函數(shù)。有兩種方法是針對(duì)一般情況下的數(shù)組和特殊情況下的向量的:(1)連接。(2)切片(廣義索引)。2025年2月4日第68頁第4章MATLAB的數(shù)學(xué)運(yùn)算MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2025年2月4日第69頁教學(xué)目標(biāo)

掌握多項(xiàng)式運(yùn)算及插值掌握函數(shù)操作掌握微分方程2025年2月4日第70頁教學(xué)內(nèi)容多項(xiàng)式與插值函數(shù)運(yùn)算微分方程2025年2月4日第71頁多項(xiàng)式與插值(1/3)多項(xiàng)式的表示 在MATLAB中多項(xiàng)式用一個(gè)行向量表示,向量中的元素為該多項(xiàng)式的系數(shù),按照降序排列。多項(xiàng)式的四則運(yùn)算 多項(xiàng)式的加減即為對(duì)應(yīng)項(xiàng)系數(shù)的加減。多項(xiàng)式的乘法實(shí)際上是多項(xiàng)式系數(shù)向量之間的卷積運(yùn)算,可以通過MATLAB中的卷積函數(shù)conv來完成。多項(xiàng)式的除法為乘法的逆運(yùn)算,可以通過反卷積函數(shù)deconv來實(shí)現(xiàn)。

2025年2月4日第72頁多項(xiàng)式與插值(2/3)多項(xiàng)式的其他運(yùn)算函數(shù)功能roots多項(xiàng)式求根polyval多項(xiàng)式求值polyvalm矩陣多項(xiàng)式求值polyder多項(xiàng)式求導(dǎo)poly求矩陣的特征多項(xiàng)式;或者求一個(gè)多項(xiàng)式,其根為指定的數(shù)值polyfit多項(xiàng)式曲線擬合residue求解余項(xiàng)2025年2月4日第73頁多項(xiàng)式與插值(3/3)數(shù)據(jù)插值。插值運(yùn)算中可選的方法。參數(shù)對(duì)應(yīng)方法‘nearest’最近鄰插值‘linear’線性插值‘spline’三次樣條插值‘pchip’或’cubic’三次插值2025年2月4日第74頁函數(shù)運(yùn)算(1/5)函數(shù)的表示利用M文件將函數(shù)定義為MATLAB函數(shù)采用匿名函數(shù)的方式數(shù)學(xué)函數(shù)圖像的繪制

fplot函數(shù)的調(diào)用方式:(1)fplot(fun,xinterval),y=f(x)。fun可以為MATLAB函數(shù)的M文件名;也可以是包含變量x的字符串,該字符串可以傳遞給函數(shù)eval;還可以是函數(shù)句柄。(2)參數(shù)limits用于指定繪制圖像的范圍。limits是一個(gè)向量,用于指定x軸的范圍,格式為[xminxmax]。不設(shè)limits值,默認(rèn)x軸區(qū)間為[-55]。

2025年2月4日第75頁函數(shù)運(yùn)算(2/5)函數(shù)極值一元函數(shù)的極小值多元函數(shù)的極小值2025年2月4日第76頁函數(shù)運(yùn)算(3/5)函數(shù)求解使用函數(shù)fzero來求一元函數(shù)的零點(diǎn),該函數(shù)的調(diào)用格式如下:(1)x=fzero(fun,x0),x=fzero(fun,[x1,x2]):尋找x0附近或者區(qū)間[x1,x2]內(nèi)fun的零點(diǎn),返回該點(diǎn)的x坐標(biāo)。(2)x=fzero(fun,x0,options),x=fzero(fun,[x1,x2],options):通過options設(shè)置參數(shù)。(3)[x,fval]=fzero(...):返回零點(diǎn)的同時(shí)返回該點(diǎn)的函數(shù)值。(4)[x,fval,exitflag]=fzero(...):返回零點(diǎn)、該點(diǎn)的函數(shù)值及程序退出的標(biāo)志。(5)[x,fval,exitflag,output]=fzero(...):返回零點(diǎn)、該點(diǎn)的函數(shù)值、程序退出的標(biāo)志及選定的輸出結(jié)果。2025年2月4日第77頁函數(shù)運(yùn)算(4/5)數(shù)值積分一元函數(shù)的積分一元函數(shù)的矢量積分二重積分和三重積分2025年2月4日第78頁函數(shù)運(yùn)算(5/5)含參數(shù)函數(shù)的使用用嵌套函數(shù)提供函數(shù)參數(shù)用匿名函數(shù)提供函數(shù)參數(shù)2025年2月4日第79頁微分方程(1/2)

常微分方程初值問題顯式常微分方程完全隱式常微分方程2025年2月4日第80頁微分方程(2/2)常微分方程邊值問題bvp4c函數(shù)用于求解常微分方程邊值問題,該函數(shù)調(diào)用格式如下:sol=bvp4c(odefun,bcfun,solinit)sol=bvp4c(odefun,bcfun,solinit,options)2025年2月4日第81頁第5章字符串、單元數(shù)組和結(jié)構(gòu)體MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2025年2月4日第82頁教學(xué)目標(biāo)掌握字符串的生成及操作掌握單元數(shù)組的生成及操作掌握結(jié)構(gòu)體的生成及操作2025年2月4日第83頁教學(xué)內(nèi)容字符串單元數(shù)組和結(jié)構(gòu)體2025年2月4日第84頁字符串(1/4)字符串的生成MATLAB中的字符串為ASCII值的數(shù)值數(shù)組,作為字符串表達(dá)式進(jìn)行表示。在MATLAB中,生成字符串的方法為stringname=’thecontentofthestring’。2025年2月4日第85頁字符串(2/4)字符串的操作字符串的顯示 直接顯示和利用disp函數(shù)進(jìn)行顯示。字符串的執(zhí)行 在MATLAB中可以用函數(shù)eval來執(zhí)行字符串。字符串運(yùn)算 字符串的運(yùn)算主要包括判斷字符串是否相等,通過字符串運(yùn)算來比較字符串中的字符,進(jìn)行字符分類、查找與替換、字符串與數(shù)值數(shù)組之間的相互轉(zhuǎn)換等。2025年2月4日第86頁字符串比較、查找和替換字符串的比較字符串的比較主要為比較兩個(gè)字符串是否相同,字符串中的子串是否相同和字符串中的個(gè)別字符是否相同。用于比較字符串的函數(shù)主要是strcmp和strncmp。字符串的查找和替換查找與替換是字符串操作中的一項(xiàng)重要內(nèi)容。用于查找的函數(shù)主要有findstr,strmatch、strrep、strtok等。字符串(3/4)2025年2月4日第87頁字符串(4/4)字符串與數(shù)值之間的轉(zhuǎn)化函數(shù)功能備注uintN(如,uint8)將字符串轉(zhuǎn)化為相應(yīng)的無符號(hào)整數(shù)uint8('ab')→9798str2num將字符型轉(zhuǎn)化為數(shù)字型str2num('123.56')→123.5600str2double與上一函數(shù)的功能相同,結(jié)果更精確一些,同時(shí)支持單元字符串?dāng)?shù)組double('123.56')→495051465354。hex2num將十六進(jìn)制數(shù)轉(zhuǎn)化為雙精度數(shù)hex2num('A')→-1.4917e-154hex2dec將十六進(jìn)制數(shù)基數(shù)轉(zhuǎn)化為正數(shù)hex2dec('B')→11bin2dec將二進(jìn)制轉(zhuǎn)化為十進(jìn)制bin2dec('1010')→10base2dec將N底數(shù)字字符串轉(zhuǎn)化為十進(jìn)制base2dec('212',3)→232025年2月4日第88頁單元數(shù)組和結(jié)構(gòu)體(1/3)MATLAB中的單元數(shù)組(cellarray)和結(jié)構(gòu)體(structure)數(shù)據(jù)類型均是將不同的相關(guān)數(shù)據(jù)集成到一個(gè)單一的變量中,使得大量的相關(guān)數(shù)據(jù)的處理與引用變得簡單而方便。2025年2月4日第89頁單元數(shù)組和結(jié)構(gòu)體(2/3)單元數(shù)組單元數(shù)組的創(chuàng)建單元數(shù)組的操作(1)單元數(shù)組元素的訪問(2)單元數(shù)組的顯示(3)單元數(shù)組的圖形顯示(4)單元數(shù)組元素的刪除(5)改變單元數(shù)組的維數(shù)(6)改變數(shù)組的形狀2025年2月4日第90頁單元數(shù)組和結(jié)構(gòu)體(3/3)結(jié)構(gòu)體結(jié)構(gòu)體的創(chuàng)建結(jié)構(gòu)體的操作(1)添加成員變量(2)刪除成員變量(3)調(diào)用成員變量2025年2月4日第91頁第6章MATLAB編程MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2025年2月4日第92頁教學(xué)目標(biāo)掌握MATLAB的腳本文件及其編輯和調(diào)試方法掌握MATLAB的程序設(shè)計(jì)和開發(fā)流程掌握MATLAB關(guān)系運(yùn)算、邏輯運(yùn)算及函數(shù)操作掌握MATLAB中的流程控制語句了解MATLAB的程序調(diào)試方法2025年2月4日第93頁教學(xué)內(nèi)容腳本文件和編輯器程序設(shè)計(jì)和開發(fā)關(guān)系運(yùn)算符和邏輯變量邏輯運(yùn)算符和函數(shù)條件語句循環(huán)switch結(jié)構(gòu)調(diào)試MATLAB程序2025年2月4日第94頁腳本文件和編輯器(1/11)在MATLAB中,用戶可以使用兩種方法執(zhí)行運(yùn)算:

(1)在交互模式下,直接在命令窗口中輸入所有的命令。

(2)通過運(yùn)行腳本文件中所存儲(chǔ)的MATLAB程序。2025年2月4日第95頁腳本文件和編輯器(2/11)創(chuàng)建和使用腳本文件2025年2月4日第96頁腳本文件和編輯器(3/11)有效使用腳本文件

(1)腳本文件名必須滿足MATLAB為變量命名的約定。(2)為腳本文件賦予的名稱不要與其所計(jì)算的變量名稱相同。(3)為腳本文件賦予的名稱要與MATLAB命令或者函數(shù)的名稱都不相同。(4)在交互模式中,腳本文件所創(chuàng)建的所有變量都是全局變量。(5)函數(shù)文件所創(chuàng)建的變量是該函數(shù)的局部變量。用戶如果不必訪問腳本文件中的所有變量,就需要考慮使用函數(shù)文件。這將避免用變量名“弄亂”工作空間,并將同時(shí)減少內(nèi)存需求。(6)在不使用文本編輯器打開M-文件的情況下,用戶可以使用type命令來查看文件的內(nèi)容。2025年2月4日第97頁腳本文件和編輯器(4/11)有效使用命令行窗口和編輯器用戶可以使用鼠標(biāo)重新調(diào)整窗口的大小并移動(dòng)窗口,從而可以同時(shí)查看它們。如果沒有進(jìn)入編輯器,那么使用Alt-Tab組合鍵則可快速地在編輯器/調(diào)試器窗口和命令窗口之間來回切換。在命令窗口中,使用向上箭頭鍵檢索先前所輸入的腳本文件名,并且按Enter鍵執(zhí)行腳本文件。在修改了腳本文件之后,要確保在切換到命令窗口之前保存文件。用戶可以使用編輯器作為基本的文字處理器來編寫包含有用戶腳本文件、結(jié)果和討論的簡短報(bào)告,或者用以提供用戶對(duì)某一問題的解答。2025年2月4日第98頁腳本文件和編輯器(5/11)調(diào)試腳本文件程序調(diào)試就是找出和刪除程序中“故障”或者錯(cuò)誤的過程。

(1)語法錯(cuò)誤(2)運(yùn)行時(shí)錯(cuò)誤MATLAB錯(cuò)誤消息通常使用戶能夠找到語法錯(cuò)誤。檢查出運(yùn)行時(shí)錯(cuò)誤,可以嘗試以下方法:

(1)總是使用簡單問題(其可以通過手算來檢驗(yàn)答案)來測(cè)試程序。

(2)刪除語句末尾的分號(hào),用以顯示任何一個(gè)中間計(jì)算結(jié)果。

(3)使用編輯器的調(diào)試特性。2025年2月4日第99頁腳本文件和編輯器(6/11)編程風(fēng)格注釋部分(1)

在第一行中放置程序名和任何關(guān)鍵詞。(2)在第二行中放置創(chuàng)建的日期,以及創(chuàng)建者的姓名。(3)

每個(gè)輸入和輸出變量的變量名定義。(4)

程序中調(diào)用的每個(gè)用戶自定義函數(shù)名稱。輸入部分:放置輸入數(shù)據(jù)和/或輸入函數(shù),其允許輸入數(shù)據(jù)。計(jì)算部分

:放置計(jì)算。

輸出部分:放置那些以所需格式傳遞的輸出函數(shù)。2025年2月4日第100頁腳本文件和編輯器(7/11)記錄度量單位本書建議用戶為所有的輸入變量和輸出變量記錄度量單位,因?yàn)楹芏喙こ滔到y(tǒng)所出現(xiàn)的驚人失敗都源于用戶誤解了用于設(shè)計(jì)系統(tǒng)的程序輸入和輸出變量的單位。2025年2月4日第101頁腳本文件和編輯器(8/11)使用腳本文件存儲(chǔ)數(shù)據(jù)可能會(huì)有一些應(yīng)用程序要求用戶頻繁地訪問同一組數(shù)據(jù)。如果是這樣的話,用戶可以將數(shù)組中的數(shù)據(jù)存儲(chǔ)在一個(gè)腳本文件之中。2025年2月4日第102頁腳本文件和編輯器(9/11)控制輸入和輸出MATLAB為從用戶獲取輸入以及為格式化輸出(執(zhí)行MATLAB命令而獲得的結(jié)果)提供了許多有用的命令。

令說

明disp(A)顯示數(shù)組A的內(nèi)容,而不是數(shù)組的名稱disp(‘text’)顯示單引號(hào)內(nèi)部的文本串Format控制屏幕輸出的顯示格式Fprintf執(zhí)行格式化的寫入到屏幕或者寫入到一個(gè)文件x=input('text')顯示單引號(hào)中的文本,等待用戶的鍵盤輸入,并且將輸入值存儲(chǔ)在x中x=input('text','s')顯示單引號(hào)中的文本,等待用戶的鍵盤輸入,并且將輸入作為字符串存儲(chǔ)在x中k=menu('title','option1','option2',...顯示菜單,該菜單的名稱在字符串變量'title'中,并且菜單的選項(xiàng)是'option1'、'option2'等等2025年2月4日第103頁腳本文件和編輯器(10/11)用戶輸入input函數(shù)用以在屏幕上顯示文本,等待用戶從鍵盤輸入某些內(nèi)容,然后再將輸入內(nèi)容存儲(chǔ)在指定變量之中。2025年2月4日第104頁腳本文件和編輯器(11/11)腳本文件示例%程序Falling_Speed.m:繪制一個(gè)下落物體的速度圖形。%W.PalmIII于2004年3月1日創(chuàng)建。%%輸入變量:%tf=最終時(shí)間(單位為秒)%%輸出變量:%t=計(jì)算速度的時(shí)間數(shù)組(單位為秒)%v=速度數(shù)組(米/秒)%參數(shù)值:g=9.81;%以SI為單位的重力加速度%%輸入部分:tf=input('Enterthefinaltimeinseconds:');%%計(jì)算部分:dt=tf/500;t=[0:dt:tf];%創(chuàng)建一個(gè)有501個(gè)時(shí)間值的數(shù)組。v=g*t;%%輸出部分:plot(t,v),xlabel('Time(seconds)'),ylabel('Speed(meters/second)')2025年2月4日第105頁程序設(shè)計(jì)和開發(fā)(1/5)算法和控制結(jié)構(gòu)(1)順序運(yùn)算。(2)條件運(yùn)算。(3)迭代運(yùn)算(循環(huán))。

結(jié)構(gòu)化程序設(shè)計(jì)(1)編寫結(jié)構(gòu)化程序較容易。(2)為一個(gè)應(yīng)用編寫的模塊(函數(shù))也可以用于其他的應(yīng)用。(3)調(diào)試結(jié)構(gòu)化程序較容易。(4)結(jié)構(gòu)化程序設(shè)計(jì)在團(tuán)隊(duì)環(huán)境中非常有效。(5)理解和修改結(jié)構(gòu)化程序較容易。2025年2月4日第106頁程序設(shè)計(jì)和開發(fā)(2/5)自頂向下的設(shè)計(jì)和程序文檔(1)簡明地陳述問題(2)指定程序所使用的數(shù)據(jù)。這就是“輸入”(3)指定程序所產(chǎn)生的信息。這就是“輸出”(4)通過手算或者計(jì)算器完成解決方案的步驟。如果需要的話,可以使用一個(gè)較簡單的數(shù)據(jù)集(5)編寫和運(yùn)行程序(6)用手算結(jié)果檢驗(yàn)程序的輸出(7)用輸入數(shù)據(jù)運(yùn)行程序,并且對(duì)輸出進(jìn)行一個(gè)真實(shí)性檢驗(yàn)(8)如果用戶在將來使用該程序作為一個(gè)通用工具,那么,用戶必須通過用一組合理的數(shù)據(jù)值來運(yùn)行它以進(jìn)行測(cè)試;并對(duì)結(jié)果進(jìn)行一個(gè)真實(shí)性檢驗(yàn)2025年2月4日第107頁程序設(shè)計(jì)和開發(fā)(3/5)自頂向下的設(shè)計(jì)和程序文檔結(jié)構(gòu)圖和流程圖通過使用以下方法實(shí)現(xiàn)有效的文檔記錄。(1)合適地選擇變量名,用以反映它們所代表的量。(2)在程序中使用注釋。(3)使用結(jié)構(gòu)圖。(4)使用流程圖。(5)通常在偽代碼中逐字地描述程序。2025年2月4日第108頁程序設(shè)計(jì)和開發(fā)(4/5)偽代碼

偽代碼是對(duì)實(shí)際計(jì)算機(jī)代碼的模仿。偽代碼可以為程序內(nèi)部的注釋提供根據(jù)。除了提供文檔記錄之外,偽代碼在編寫詳細(xì)代碼之前對(duì)于一個(gè)程序輪廓所進(jìn)行的描述也很有用。查找故障參看6.1.4節(jié)2025年2月4日第109頁程序設(shè)計(jì)和開發(fā)(5/5)開發(fā)大型程序(1)編寫和測(cè)試各個(gè)模塊(單元測(cè)試階段)。(2)編寫使用模塊的頂級(jí)程序(構(gòu)建階段)。(3)測(cè)試第一個(gè)完整的程序(alpha測(cè)試版階段)。(4)由內(nèi)部人員與熟悉和信任的外部用戶(這通常必須簽保密協(xié)議)測(cè)試最后的alpha測(cè)試版。2025年2月4日第110頁關(guān)系運(yùn)算符和邏輯變量(1/4)6個(gè)關(guān)系運(yùn)算符:

<小于,<=小于或者等于,>大于,

>=大于或者等于,==等于,~=不等于使用關(guān)系運(yùn)算符進(jìn)行比較的結(jié)果是0(如果比較是假)或者1(如果比較是真),并且MATLAB可以使用這個(gè)結(jié)果作為一個(gè)變量。用于比較數(shù)組時(shí),關(guān)系運(yùn)算符逐元素地比較數(shù)組。比較的數(shù)組必須具有相同的維數(shù)。唯一的例外是當(dāng)用戶比較一個(gè)數(shù)組和一個(gè)標(biāo)量的時(shí)候,這時(shí)MATLAB將數(shù)組中的所有元素分別與標(biāo)量進(jìn)行比較。關(guān)系運(yùn)算符也可以用于數(shù)組尋址。算術(shù)運(yùn)算符+、-、*、/和\的優(yōu)先級(jí)高于關(guān)系運(yùn)算符。關(guān)系運(yùn)算符之間的優(yōu)先級(jí)相等,并且MATLAB按照從左到右的順序計(jì)算它們的值。2025年2月4日第111頁關(guān)系運(yùn)算符和邏輯變量(2/4)logical類當(dāng)使用關(guān)系運(yùn)算符(如x=(5>2))時(shí),創(chuàng)建了一個(gè)邏輯變量(在此處就是x)。在MATLAB之前的版本中,logical是任何一個(gè)數(shù)值數(shù)據(jù)類型的屬性?,F(xiàn)在,logical是一個(gè)第一類數(shù)據(jù)類型和一個(gè)MATLAB類,所以logical現(xiàn)在等效于其他的第一類類型,如字符和單元數(shù)組。邏輯變量只可能有值1(真)和0(假)。2025年2月4日第112頁關(guān)系運(yùn)算符和邏輯變量(3/4)logical函數(shù)用戶可以使用關(guān)系和邏輯運(yùn)算符以及l(fā)ogical函數(shù)創(chuàng)建邏輯數(shù)組。logical函數(shù)返回一個(gè)可以用于邏輯索引和邏輯測(cè)試的數(shù)組。2025年2月4日第113頁關(guān)系運(yùn)算符和邏輯變量(4/4)使用邏輯數(shù)組訪問數(shù)組當(dāng)使用邏輯數(shù)組尋址另一個(gè)數(shù)組時(shí),MATLAB會(huì)從那個(gè)數(shù)組中提取邏輯數(shù)組有1那個(gè)位置中的元素。2025年2月4日第114頁邏輯運(yùn)算符和函數(shù)(1/2)MATLAB中有5個(gè)邏輯運(yùn)算符,有時(shí)也稱為布爾(Boolean)運(yùn)算符,這些運(yùn)算符執(zhí)行逐元素運(yùn)算。除了NOT運(yùn)算符(~)之外,它們的優(yōu)先級(jí)比算術(shù)和關(guān)系運(yùn)算符的都低。NOT運(yùn)算&和|運(yùn)算符與(AND)運(yùn)算或(OR)運(yùn)算異或函數(shù)2025年2月4日第115頁邏輯運(yùn)算符和函數(shù)(2/2)短路邏輯運(yùn)算符

A&&BA||B邏輯運(yùn)算符和find函數(shù)函數(shù)find(x)計(jì)算一個(gè)數(shù)組,它包含數(shù)組x中那些非零元素的索引。它可與邏輯運(yùn)算符結(jié)合使用。2025年2月4日第116頁條件語句(1/3)if語句

if語句的基本形式:

if邏輯表達(dá)式語句

end“嵌套”if語句

if邏輯表達(dá)式1

語句組1if邏輯表達(dá)式2

語句組2endend每條if語句必須伴隨有一條end語句。end語句標(biāo)志著邏輯表達(dá)式為true時(shí)所要執(zhí)行語句的結(jié)束。if和邏輯表達(dá)式(其可以是一個(gè)標(biāo)量、一個(gè)矢量或者一個(gè)矩陣)之間需要一個(gè)空格。2025年2月4日第117頁條件語句(2/3)else語句與elseif語句else語句的基本結(jié)構(gòu)為:

if邏輯表達(dá)式語句組1else

語句組2end使用elseif語句的一般形式是:if邏輯表達(dá)式1語句組1elseif邏輯表達(dá)式2語句組2else語句組3end2025年2月4日第118頁條件語句(3/3)字符串和條件語句字符串是一個(gè)包含有字符的變量。字符串對(duì)于創(chuàng)建輸入提示符、消息、存儲(chǔ)以及對(duì)諸如姓名和地址等數(shù)據(jù)進(jìn)行的操作都很有用。要在MATLAB創(chuàng)建一個(gè)字符串變量,可以將字符放在單引號(hào)中。字符串最重要的應(yīng)用之一是:創(chuàng)建輸入提示和輸出消息。

2025年2月4日第119頁循環(huán)(1/4)for循環(huán)for循環(huán)的典型結(jié)構(gòu)如下所示:

for循環(huán)變量=m:s:n

語句

end注意

for語句需要伴隨有一個(gè)end語句。end語句標(biāo)志著所要執(zhí)行語句的結(jié)束。在for和loop變量(其可能是一個(gè)標(biāo)量、一個(gè)矢量或者一個(gè)矩陣,但是到目前為止,標(biāo)量是最常見的情況)之間需要一個(gè)空格。2025年2月4日第120頁循環(huán)(2/4)break和continue語句break語句停止循環(huán)的執(zhí)行。continue語句將把控制傳遞給那些它出現(xiàn)在其中的for或者while循環(huán)的下一次迭代之中,并同時(shí)跳過循環(huán)主體中的其他任何語句。在嵌套循環(huán)中,continue將控制傳遞給關(guān)閉了continue語句的for或者while循環(huán)的下一次迭代。2025年2月4日第121頁循環(huán)(3/4)使用數(shù)組作為循環(huán)索引

MATLAB中允許使用一個(gè)矩陣表達(dá)式為循環(huán)指定所執(zhí)行的遍數(shù)。在這種情況下,循環(huán)變量是一個(gè)矢量,并且在每一遍循環(huán)執(zhí)行期間,MATLAB都將循環(huán)變量設(shè)置成等效于矩陣表達(dá)式的連續(xù)列。

隱含循環(huán)使用邏輯數(shù)組作為掩碼通??梢酝ㄟ^使用邏輯數(shù)組作為掩碼(即,選擇另一個(gè)數(shù)組的元素)來避免使用循環(huán)和分支,用戶因此可以創(chuàng)建更簡單和更快捷的程序。2025年2月4日第122頁循環(huán)(4/4)while循環(huán)while循環(huán)的典型結(jié)構(gòu)如下所示:

while邏輯表達(dá)式語句

end要使while循環(huán)正常運(yùn)行,必須發(fā)生以下這兩個(gè)前提條件:

(1)在執(zhí)行while語句之前,循環(huán)變量必須有一個(gè)值。(2)語句必須以某種方式改變循環(huán)變量的值。while循環(huán)的主要應(yīng)用是:當(dāng)用戶希望只要某個(gè)語句為true時(shí),循環(huán)就繼續(xù)進(jìn)行。2025年2月4日第123頁switch結(jié)構(gòu)(1/1)switch結(jié)構(gòu)的語法是:

switch輸入表達(dá)式(標(biāo)量或者字符串)case值1

語句組1case值2

語句組2...otherwise

語句組nend2025年2月4日第124頁調(diào)試MATLAB程序(1/3)

編輯器的選項(xiàng)卡包括“文件”“導(dǎo)航”“代碼”“分析”“節(jié)”和“運(yùn)行”6個(gè)功能面板,每個(gè)功能面板里存放的就是同類功能或?qū)傩缘墓δ馨粹o。只需將鼠標(biāo)指針停留在工具欄的某個(gè)按鈕上,用戶就可以了解它的功能?!按a”功能區(qū)

使用“代碼”功能區(qū)中的選項(xiàng)(功能按鈕),用戶就可以插入或刪除注釋、增加或減少縮排量、打開智能縮排,并在計(jì)算和命令窗口中顯示所選變量的值。2025年2月4日第125頁調(diào)試MATLAB程序(2/3)“節(jié)”功能區(qū)使用“節(jié)”功能區(qū)中的“運(yùn)行節(jié)”“運(yùn)行并前進(jìn)”和“前進(jìn)”按鈕,可以在已經(jīng)設(shè)置了斷點(diǎn)和運(yùn)行文件之后,單步執(zhí)行用戶的文件?!斑\(yùn)行”功能區(qū)“運(yùn)行”按鈕下拉菜單還包含“斷點(diǎn)”和“錯(cuò)誤處理”功能列表?!皵帱c(diǎn)”功能列表下的選項(xiàng)主要用來設(shè)置/清除斷點(diǎn)(Breakpoint)。2025年2月4日第126頁調(diào)試MATLAB程序(3/3)設(shè)置首選項(xiàng)

要為編輯器/調(diào)試器設(shè)置首選項(xiàng),可以通過“主頁”|“環(huán)境”|“預(yù)設(shè)項(xiàng)”按鈕

來進(jìn)行。查找故障設(shè)置斷點(diǎn)檢查變量檢查工作空間單步執(zhí)行代碼和繼續(xù)執(zhí)行調(diào)試一個(gè)循環(huán)2025年2月4日第127頁第7章MATLAB的符號(hào)處理MATLAB基礎(chǔ)教程(第六版)(微課版)教學(xué)目標(biāo)教學(xué)內(nèi)容2025年2月4日第128頁教學(xué)目標(biāo)

掌握基本符號(hào)運(yùn)算掌握符號(hào)函數(shù)圖形繪制掌握符號(hào)微積分的運(yùn)算掌握符號(hào)方程的求解方法掌握符號(hào)積分變換了解mfun函數(shù)的使用了解符號(hào)函數(shù)計(jì)算器的使用2025年2月4日第129頁教學(xué)內(nèi)容符號(hào)運(yùn)算簡介符號(hào)表達(dá)式的化簡與替換符號(hào)函數(shù)圖形繪制符號(hào)微積分符號(hào)方程的求解符號(hào)積分變換mfun函數(shù)的使用符號(hào)函數(shù)計(jì)算器2025年2月4日第130頁符號(hào)運(yùn)算簡介(1/6)符號(hào)對(duì)象符號(hào)對(duì)象是符號(hào)工具箱中定義的另一種數(shù)據(jù)類型。符號(hào)對(duì)象是符號(hào)的字符串表示。在符號(hào)工具箱中符號(hào)對(duì)象用于表示符號(hào)變量、表達(dá)式和方程。下例說明了符號(hào)對(duì)象和普通的數(shù)據(jù)對(duì)象之間的差別。2025年2月4日第131頁符號(hào)運(yùn)算簡介(2/6)符號(hào)變量、表達(dá)式的生成sym/str2sym函數(shù)

sym/str2sym函數(shù)可以用于生成單個(gè)的符號(hào)變量。syms函數(shù)

syms用于一次生成多個(gè)符號(hào)變量,但是不能用于生成表達(dá)式。2025年2月4日第132頁符號(hào)運(yùn)算簡介(3/6)symvar函數(shù)和subs函數(shù)symvar函數(shù)該函數(shù)用于確定一個(gè)表達(dá)式中的符號(hào)變量。subs函數(shù)

subs函數(shù)可以將符號(hào)表達(dá)式中的符號(hào)變量用數(shù)值代替。2025年2月4日第133頁符號(hào)運(yùn)算簡介(4/6)符號(hào)和數(shù)值之間的轉(zhuǎn)化

sym/str2sym函數(shù)用于生成符號(hào)變量,也可以將數(shù)值轉(zhuǎn)化為符號(hào)變量。轉(zhuǎn)化的方式由參數(shù)“flag”確定。

2025年2月4日第134頁符號(hào)運(yùn)算簡介(5/6)任意精度的計(jì)算

符號(hào)計(jì)算的一個(gè)非常顯著的特點(diǎn)是:在計(jì)算過程中不會(huì)出現(xiàn)舍入誤差,從而可以得到任意精度的數(shù)值解。如果希望計(jì)算結(jié)果精確,可以用符號(hào)計(jì)算來獲得足夠高的計(jì)算精度。符號(hào)計(jì)算相對(duì)于數(shù)值計(jì)算而言,需要更多的計(jì)算時(shí)間和存儲(chǔ)空間。MATLAB工具箱中有三種不同類型的算術(shù)運(yùn)算:數(shù)值型:MATLAB的浮點(diǎn)數(shù)運(yùn)算;有理數(shù)類型:Maple的精確符號(hào)運(yùn)算;VPA類型:Maple的任意精度算術(shù)運(yùn)算。2025年2月4日第135頁符號(hào)運(yùn)算簡介(6/6)創(chuàng)建符號(hào)方程1.創(chuàng)建抽象方程2.創(chuàng)建符號(hào)方程創(chuàng)建符號(hào)方程的方法有兩種:利用符號(hào)表達(dá)式創(chuàng)建和創(chuàng)建M文件。

2025年2月4日第136頁符號(hào)表達(dá)式的化簡與替換(1/2)

符號(hào)表達(dá)式的化簡

MATLAB中collect、expand、horner、factor和simplify函數(shù)分別實(shí)現(xiàn)符號(hào)表達(dá)式的化簡。1.Collect2.expand3.horner4.Factor5.simplify2025年2月4日第137頁符號(hào)表達(dá)式的化簡與替換(2/2)符號(hào)表達(dá)式的替換1.subexpr2.subs2025年2月4日第138頁符號(hào)函數(shù)圖形繪制(1/3)符號(hào)函數(shù)曲線的繪制1.顯函數(shù)2.隱函數(shù)3.參數(shù)方程4.三維參數(shù)曲線2025年2月4日第139頁符號(hào)函數(shù)圖形繪制(2/3)符號(hào)函數(shù)曲面網(wǎng)格圖及表面圖的繪制1.ezmesh、ezsurf2.ezmeshc、ezsurfc2025年2月4日第140頁等值線的繪制在MATLAB中,用于繪制符號(hào)函數(shù)等值線的函數(shù)有ezcontour和ezcontourf,這兩個(gè)函數(shù)分別用于繪制等值線和帶有區(qū)域填充的等值線。符號(hào)函數(shù)圖形繪制(3/3)2025年2月4日第141頁符號(hào)微積分(1/5)符號(hào)表達(dá)式求極限在MATLAB中函數(shù)limit用于求表達(dá)式的極限。

limit(F,x,a),當(dāng)x趨近于a時(shí)表達(dá)式F的極限。

limit(F,a),當(dāng)F中的自變量趨近于a時(shí)F的極限,自變量由findsym函數(shù)確定。

limit(F),當(dāng)F中的自變量趨近于0時(shí)F的極限,自變量由findsym函數(shù)確定。

limit(F,x,a,'right'),當(dāng)x從右側(cè)趨近于a時(shí)F的極限。

limit(F,x,a,'left'),當(dāng)x從左側(cè)趨近于a時(shí)F的極限。2025年2月4日第142頁符號(hào)微積分(2/5)符號(hào)微分

MATLAB中函數(shù)diff實(shí)現(xiàn)函數(shù)求導(dǎo)和求微分,可以實(shí)現(xiàn)一元函數(shù)求導(dǎo)和多元函數(shù)求偏導(dǎo)。

diff(S),實(shí)現(xiàn)表達(dá)式S的求導(dǎo),自變量由函數(shù)findsym確定。

diff(S,'v'),實(shí)現(xiàn)表達(dá)式對(duì)指定變量v的求導(dǎo),該語句還可以寫為diff(S,sym('v'))。

diff(S,n),求S的n階導(dǎo)。

diff(S,'v',n),求S對(duì)v的n階導(dǎo),該表達(dá)式還可以寫為diff(S,n,'v')。2025年2月4日第143頁符號(hào)微積分(3/5)符號(hào)積分與微分對(duì)應(yīng)的是積分,在MATLAB中,函數(shù)int用于實(shí)現(xiàn)符號(hào)微分運(yùn)算。

R=int(S),求表達(dá)式S的不定積分,自變量由findsym函數(shù)確定。

R=int(S,v),求表達(dá)式S對(duì)自變量v的不定積分。

R=int(S,a,b),求表達(dá)式S在區(qū)間[a,b]上的定積分,自變量由findsym函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論