




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MATLAB
語言及其應用ApplicationofMatlabLanguage
2024/11/8ApplicationofMatlabLanguage2
課程的作用課程的目的課程的特點課程安排
2024/11/8ApplicationofMatlabLanguage3
課程的作用
在歐美各高等學校,Matlab成為線性代數、自動控制理論、數字信號處理、時間序列分析、動態系統仿真、圖像處理等諸多課程的基本教學工具,成為本科生、碩士生和博士生的必須掌握的基本技能。在設計研究單位和工業部門,Matlab已被廣泛地用于研究和解決各種具體的工程問題。可以預見,Matlab將在我國科學研究和工程應用中發揮越來越大的作用。
2024/11/8ApplicationofMatlabLanguage4
講授MATLAB語言基礎入門知識,介紹MATLAB產品的體系、MATLAB桌面工具的使用方法,重點介紹MATLAB的數據可視化、數值計算的基本步驟以及如何使用MATLAB語言編寫整潔、高效、規范的程序。并涉及到一些具體的專業應用工具箱(如:信號處理工具箱、圖像處理工具箱等)。通過本課程的學習,了解、熟悉、掌握MATLAB的基本編程方法,并具有初步的利用計算機處理、解決實際問題的能力,為進一步學習后續的專業課程做好準備。本課程的目的(ObjectivesofThisCourse
)
本課程的特點(FeaturesofThisCourse
)
交叉性課程,是計算機技術、數學理論知識以及諸多工程理論知識的綜合。實踐性課程。內容多,課時少,要求同學上課認真聽講,要充分利用上機實踐消化、理解、掌握課上講解內容。
2024/11/8ApplicationofMatlabLanguage5
課程安排課堂教學:共24學時;(1-12周)上機試驗:共24學時。
(2-13周,周二7-8節,九實401、402、403)學習成績:
1)上機實驗成績占30%;
2)考勤10%;
3)
考試60%(隨堂考試)。主要參考書《精通MATLAB6.5》張志涌等編著,北航出版,2003年《高等應用數學問題的Matlab求解》薛定宇等著,清華大學出版社,2004年《Matlab程序設計與應用》劉衛國主編,高等教育出版社
2024/11/8ApplicationofMatlabLanguage6
授課宗旨
講授MATLAB的通用功能。寓教于例,由淺入深。關于科學計算,著重強調理論概念、算法和實際計算三者之間的關系。
2024/11/8ApplicationofMatlabLanguage7
第一講
Matlab概述前言Matlab軟件概述Matlab的桌面環境及入門知識
2024/11/8ApplicationofMatlabLanguage8
1Matlab概述內容Matlab發展歷史Matlab產品家族(Matlab
familyofproducts)體系Matlab語言的特點。目的全面了解Matlab軟件包激發對Matlab軟件的學習興趣。
2024/11/8ApplicationofMatlabLanguage9
1.1MATLAB的歷史及影響
70年代中期,CleveMoler博土及其同事在美國國家基金會的幫助下,開發了LINPACK和EISPACK的FORTRAN語言子程序庫,這兩個程序庫代表了當時矩陣運算的最高水平。到了70年代后期,身為美國新墨西哥州大學計算機系系主任的CIeveMoler,在給學生上線性代數課時,為了讓學生能使用這兩個子程序庫,同時又不用在編程上花費過多的時間,開始著手用FORTRAN語言為學生編寫使用LINPACK和EISPACK的接口程序,他將這個程序取名為MATLAB,其名稱是由MATrix和LABoratory(矩陣實驗室)兩個單詞的前三個字母所合成。在1978年,Malab就面世了。這個程序獲得了很大的成功,受到了學生的廣泛歡迎。在以后的幾年里,Matlab在多所大學里作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳。CleveMoler
2024/11/8ApplicationofMatlabLanguage10
將MATLAB商品化的不是CleveMoler,而是一個名叫JackLittle的人。當免費的MATLAB軟件到Stanford大學,JackLittle正在該校主修控制,便接觸到了當時MATLAB,直覺告訴他,這是一個具有巨大發展潛力的軟件。因此他在畢業沒多久,就開始用C語言重新編寫了MATLAB的核心。在Moler的協助下,于1984年成立MathWorks公司,首次推出MATLAB商用版。在其商用版推出的初期,MATLAB就以其優秀的品質(高效的數據計算能力和開放的體系結構)占據了大部分數學計算軟件的市場,原來應用于控制領域里的一些封閉式數學計算軟件包(如英國的UMIST、瑞典的LUND和SIMNON、德國的KEDDC)就紛紛被淘汰或在MATLAB上重建。JackLittle
2024/11/8ApplicationofMatlabLanguage11
CleveMoler至今仍是該公司的首席科學家,他以60多歲的高齡,還常常親自進行撰寫程序的工作,非常令人佩服。如果你有數值運算方面的高水平問題,寄到MathWorks后,大部份還是會由CleveMoler親自回答。在1994年,Pentium芯片曾發生Fdiv的bug,當時CleveMoler是第一個以軟件方式解決此bug的人,曾一時膾炙人口。
在公司初創的五年,JackLittle非常辛苦,常常身兼數職(董事長、總經理、推銷、程序開發等),但公司一直穩定發展,從當初的一人公司,到1993年的200人,到2000年的500余人,到2005年公司員工達到了1300人,不但打敗其他競爭軟件,而且前景一片欣欣向榮。根據JackLittle個人說法,MATLAB早期成功的兩大因素是:選用了C語言及選定PC為主要平臺,這似乎和微軟的成功有相互呼應之妙。
MathWorks公司,目前仍然是私人企業,并未上市,這和JackLittle個人理念有關,他認為MATLAB的設計方向應該一直是以顧客的需求與軟件的完整性為首要目標,而不是以盈利為主要目的,因此MATLAB一直是在穩定中求進步,而不會因為上市而遭受股東左右其發展方向。這也是為什么MATLAB新版本總是姍姍來遲的原因,因為他們不會因為市場的需求而推出不成熟的產品。此外,由于JackLittle保守的個性,也使得MathWorks不曾跨足MATLAB/Simulink以外的行業,當前商場上紛紛擾擾的并購或分家,MathWorks完全是絕緣體。
2024/11/8ApplicationofMatlabLanguage12
1992年,支持Windows3.x的MATLAB4.0版本推出,增加了Simulink,Control,NeuralNetwork,SignalProcessing等專用工具箱。
1993年11月,MathWorks公司推出了Matlab4.1,其中主要增加了符號運算功能。當升級至Matlab4.2c,這一功能在用戶中得到廣泛應用。1997年,Matlab5.0版本問世了,實現了真正的32位運算,加快數值計算,圖形表現有效。
2001年初,MathWorks公司推出了Matlab6.0(R12)。2002年7月,推出了Matlab6.5(R13),在這一版本中Simulink升級到了5.0,性能有了很大提高,另一大特點是推出了JIT程序加速器,Matlab的計算速度有了明顯的提高。2005年9月,推出了MAILAB7.1(Release14SP3),在這一版本中Simulink升級到了6.3,軟件性能有了新的提高,用戶界面更加友好。值得說明的是,MatlabV7.1版采用了更先進的數學程序庫,即“LAPACK”和“BLAS”。目前,Matlab軟件支持多種系統平臺,如常見的WindowsNT/XP、UNIX、Linux等。Matlab版本的發展
2024/11/8ApplicationofMatlabLanguage13
MATLAB就是這樣經過了近30年的專門打造、20多年的千錘百煉,它以高性能的數組運算(包括矩陣運算)為基礎,不僅實現了大多數數學算法的高效運行函數和數據可視化,而且提供了非常高效的計算機高級編程語言,在用戶可參與的情況下,各種專業領域的工具箱不斷開發和完善,MATLAB取得了巨大的成功,已廣泛應用于科學研究、工程應用,用于數值計算分析、系統建模與仿真。早在20世紀90年代初,歐美等發達國家的大學就將MATLAB列為一種必須掌握的編程語言。近幾年來,國內的很多大學也將MATLAB列為了本科生必修課程。與Maple、Mathematica數學計算軟件相比,MATLAB以數值計算見長,而Maple等以符號運算見長,能給出解析解和任意精度解,而處理大量數據的能力遠不如MATLAB。
MATLAB軟件功能之強大、應用之廣泛,已成為為21世紀最為重要的科學計算語言。可見學習掌握這一工具的重要性。
2024/11/8ApplicationofMatlabLanguage14
MATLAB產品由若干模塊組成,不同的模塊完成不同的功能,其中有:
實際上MATLAB本身就是一個極其豐富的資源庫,那么應該從哪一部分開始著手、學習使用MATLAB呢?這就有必要了解這一軟件產品的體系結構。MATLABCompiler這種編譯器可以將MATLAB程序文件編譯生成標準的C/C++語言文件,而生成的標準的C/C++文件可以被任何一種C/C++編譯器編譯生成函數庫或可執行文件,以提高程序的運行效率。1.2MATLAB產品的體系結構
MATLABMATLABToolboxesMATLABCompilerSimulinkSimulinkBlocksetsReal-TimeWorkshop(RTW)StateflowStateflowCoder由這些模塊產品之間的關系可以圖1.1表示。圖1.1MATLAB產品體系結構圍繞著MATLAB這個計算核心,形成了諸多針對不同應用領域的算法程序包,被稱為專用工具箱(Toolbox),這些工具箱的列表以及每個工具箱的使用詳見MATLAB在線幫助文檔。MATLAB本身所提供的工具箱大概有40多個,另外還有其他公司或研究單位開發提供的工具箱,這些工具箱的總數已有100多個,而且新的工具箱還在不斷增加。如果你有特別的應用領域,可以首先到網上查找是否已有相關的工具箱,很可能已有人將你要做的應用程序作成工具箱了。Simulink是窗口圖形方式的、專門用于連續時間或離散時間的動態系統建模、分析和仿真的核心。Real-TimeWorkshop是一種實時代碼生成工具,它能夠根據Simulink模型生成程序源代碼,并打包、編譯所生成的源代碼生成實時應用程序。
從現有的Simulink和Stateflow自動生成C語言程序代碼的功能、定點運算模塊集(Fixed-pointBlockset)與C語言程序代碼到VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,一種標準的硬件電路設計語言
)的自動轉換功能,可以看出,高級的系統仿真或低級的芯片算法設計,都可用MATLAB、Simulink、Stateflow及相關的工具箱來完成。Stateflow是基于有限狀態機理論針對復雜的事件驅動系統進行建模、仿真的工具。StateflowCoder是基于Stateflow狀態圖生成高效、優化的程序代碼。圍繞著Simulink仿真核心所開發的應用程序包,稱為模塊集(Blocksets),MATLAB產品提供許多專用模塊集,如CommunicationBlockset、DSPBlockset、SimPowerSystemBlockset、SignalProcessingBlockset等,詳見MATLAB在線幫助文檔。MATLAB是MATLAB產品家族的計算核心與基礎,是集高性能數值計算與數據可視化于一體的高效編程語言。
2024/11/8ApplicationofMatlabLanguage15
1.3MATLAB編程語言的特點
語法規則簡單。尤其內定的編程規則,與其他編程語言(如C、Fortran等)相比更接近于常規數學表示。對于數組變量的使用,不需類型聲明,無需事先申請內存空間。MATLAB語言主要有以下幾個特點:
MATLAB基本的語言環境提供了數以千計的計算函數,極大的提高了用戶的編程效率。如,一個fft函數即可完成對指定數據的快速傅里葉變換,這一任務如果用C語言來編程實現的話,至少要用幾十條C語言才能完成。
因此,MATLAB是一個簡單易用、功能強大的高效編程語言。
平臺無關性(可移植性)。MATLAB軟件可以運行在很多不同的計算機系統平臺上,如WindowsMe/NT/2000/XP、很多不同版本的UNIX以及Linux。無論你在哪一個平臺上編寫的程序都可以運行在其它平臺上,對于MATLAB數據文件也一樣,是平臺無關的。極大保護了用戶的勞動、方便了用戶。其繪圖功能也是平臺無關的。無論任何系統平臺,只要MATLAB能夠運行,其圖形功能命令就能正常運行。
MATLAB是一種腳本式(scripted)的解釋型語言,無論是命令、函數或變量,只要在命令窗口的提示符下鍵入,并“回車(Enter)”,MATLAB都予以解釋執行。
2024/11/8ApplicationofMatlabLanguage16
功能強大數值運算優勢符號運算優勢(Maple)強大的2D、3D數據可視化功能許多具有算法自適應能力的功能函數
2024/11/8ApplicationofMatlabLanguage17
語言簡單、內涵豐富語言及其書寫形式非常接近于常規數學書寫形式;其操作和功能函數指令就是常用的計算機和數學書上的一些簡單英文單詞表達的,如:help、clear等;完備的幫助系統,易學易用。擴充能力、可開發能力較強MATLAB完全成了一個開放的系統用戶可以開發自己的工具箱可以方便地與Fortran、C等語言接口
編程易、效率高
Matlab以數組為基本計算單元具有大量的算法優化的功能函數
2024/11/8ApplicationofMatlabLanguage18
2MATLAB的桌面環境及入門知識啟動與退出MATLAB命令窗口及使用數值表示、變量、表達式命令歷史窗口工作空間獲取在線幫助
2024/11/8ApplicationofMatlabLanguage19
2.1啟動與退出MATLAB啟動MATLAB直接用鼠標雙擊桌面上MATLAB7.1圖標或Windows桌面的“開始”—〉“所有程序”—〉“MATLAB7.1”—〉“MATLAB7.1”。退出MATLAB關閉MATLAB桌面在命令窗口執行quit或exit命令MATLAB缺省桌面(見下頁)
2024/11/8ApplicationofMatlabLanguage20
菜單欄工具欄文件編輯窗口工作空間歷史命令窗口Start菜單命令窗口命令提示符2.1啟動與退出MATLAB(續)
2024/11/8ApplicationofMatlabLanguage21
2.2命令窗口的使用激活命令窗口。“>>”與閃爍的光標一起表明系統就緒,等待輸入。命令窗口脫離MATLAB桌面。簡單計算【例2.2-1】計算(1)在MATLAB命令窗口輸入以下內容:>>(12+2*(7-4))/3^2(2)按【Enter】鍵,指令執行。(3)返回的計算結果:ans=2
2024/11/8ApplicationofMatlabLanguage22
2.2命令窗口(續)〖說明〗在命令窗口【Enter】鍵提交命令執行。Matlab所用運算符(如+、-、^等)是各種計算程序中常見的。計算結果中的“ans”是英文“answer”的一種縮寫,其含義就是“運算答案”。ans是Matlab的一個預定義變量。
2024/11/8ApplicationofMatlabLanguage23
2.2命令窗口(續)簡單計算(續)【例2.2-2】計算sin(45?)>>sin(45*pi/180)Matalb中正弦函數sin就是常見的正弦函數。它的參數值是以“弧度”為單位的。pi也是Matalb的預定義變量。pi=3.14159…Matlab對字母大小寫是敏感的。【例2.2-3】計算的值,其中x=4.92。
>>sqrt(2*exp(4.92+0.5)+1)Matalb中開平方—sqrt(x),是英文squareroot的縮寫
。Matalb中指數函數exp(x),常見的表達方式。ans=0.7071ans=21.2781
2024/11/8ApplicationofMatlabLanguage24
2.2命令窗口
(續)“clc”清除窗口顯示內容的命令。【例2.2-4】計算的值。
>>y=2*sin(0.3*pi)/(1+sqrt(5))y=0.5000【例2.2-5】計算的值。
>>y=2*cos(0.3*pi)/(1+sqrt(5))y=0.3633命令行編輯
“↑”鍵調回已輸入過命令。修改。
2024/11/8ApplicationofMatlabLanguage25
2.2命令窗口
(續)【例2.2-5】計算半徑為5.2m的圓的周長和面積。>>radius=5.2;%圓的半徑>>area=pi*5.2^2,
circle_len=2*pi*5.2area=
84.9487circle_len=
32.6726以上兩例,命令行中用到了等號“=”。計算結果不再賦給“ans”,而是賦給用戶指定的變量y、area、circle_len。無論是預定義變量還是用戶自定義變量都被存儲在系統的工作空間內,即系統定義的一個存儲窗口變量的內存空間。Who、whos命令用來顯示工作空間的變量clear命令用來清除工作空間的變量。
2024/11/8ApplicationofMatlabLanguage26
2.2命令窗口(續)>>who>>whosYourvariablesare:anscircle_lenyarearadius
NameSizeBytesClassans1x18doublearrayarea1x18doublearraycircle_len1x18doublearrayradius1x18doublearrayy1x18doublearrayGrandtotalis5elementsusing40bytes
2024/11/8ApplicationofMatlabLanguage27
2.2命令窗口
(續)>>cleary>>whoYourvariablesare:anscircle_lenarearadius
>>clearansarea>>whosYourvariablesare:NameSizeBytesClasscircle_len1x18doublearrayradius1x18doublearrayGrandtotalis2elementsusing16bytes
2024/11/8ApplicationofMatlabLanguage28
2.2命令窗口
(續)數值顯示格式設置缺省顯示格式:簡潔的短(shortg)格式窗口命令及語法格式:format顯示格式關鍵字如:formatlong%15位數字顯示常見通用命令命令 含義clc 清除命令窗口的顯示內容clear 清除Matlab工作空間中保存的變量who或whos 顯示Matlab工作空間中的變量信息dir 顯示當前工作目錄的文件和子目錄清單cd 顯示或設置當前工作目錄type 顯示指定m文件的內容help或doc 獲取在線幫助quit或exit 關閉/推出MATALB
2024/11/8ApplicationofMatlabLanguage29
2.3工作空間查看工作空間內存變量,可以由who、whos。命名新變量。修改變量名刪除變量繪圖保存變量數據裝入數據
2024/11/8ApplicationofMatlabLanguage30
2.4歷史窗口歷史窗口:首先記錄每次啟動時間并記錄在命令窗口輸入命令,此次運行期間,輸入的所有命令被記錄為一組,并以此次啟動時間為標志。使用歷史窗口:可以查看命令窗口輸入過的命令或語句可以選擇一條或多條命令執行拷貝、執行、創建M文件等。要清除歷史記錄,可以選擇Edit菜單中的ClearCommandHistory命令
2024/11/8ApplicationofMatlabLanguage31
2.5當前目錄窗口和搜索路徑當前目錄窗口:指Matlab運行時的工作目錄。只有在當前目錄和搜索路徑下的文件、函數才可以被運行和調用。如果沒有特殊指明,數據文件也將存放在當前目錄下;用戶可以將自己的工作目錄設置成當前目錄,從而使得所有操作都在當前目錄中進行。
2024/11/8ApplicationofMatlabLanguage32
搜索路徑:指Matlab執行過程中對變量、函數和文件進行搜索的路徑。在File菜單中選擇SetPath命令或在命令窗口輸入pathtool命令,出現搜索路徑設置對話框:!修改完搜索路徑后,需要進行保存。
2024/11/8ApplicationofMatlabLanguage33
2.6獲取在線幫助MATLAB提供的幫助信息有兩類簡單純文本幫助信息helplookfor(條件比較寬松)例:inverse窗口式綜合幫助信息(文字、公式、圖形)dochelpwin
2024/11/8ApplicationofMatlabLanguage34
【功能演示-1】求方程的全部根。p=[2,0,-3,71,-9,13];%建立多項式系數向量x=roots(p);求根x=-3.49141.6863+2.6947i1.6863-2.6947i0.0594+0.4251i0.0594-0.4251i
2024/11/8ApplicationofMatlabLanguage35
【功能演示-2】求解線性方程組a=[2,3,-1;8,2,3;45,3,9];%建立系數矩陣ab=[2;4;23];%建立列向量bx=inv(a)*bx=0.55310.2051-0.2784
2024/11/8ApplicationofMatlabLanguage36
符號計算symsxyz
%建立符號變量[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)x=151/273y=8/39z=-76/273
2024/11/8ApplicationofMatlabLanguage37
【功能演示-3】求解定積分
求解
I=quad('x.*log(1+x)',0,1)ans=0.250或symsxnt(x*log(1+x),0,1)ans=1/4
2024/11/8ApplicationofMatlabLanguage38
【功能演示-4】多項式曲線擬合考慮如下x-y一組實驗數據:x=[1,2,3,4,5,6,7,8,9,10]y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]注:一次多項式擬合:p1=polyfit(x,y,1)三次多項式擬合:p3=polyfit(x,y,3)plot原始數據、一次擬合曲線和三次擬合曲線x2=1:0.1:10;y1=polyval(p1,x2)y3=polyval(p3,x2)plot(x,y,’*’,x2,y1,‘:’,x2,y3)
2024/11/8ApplicationofMatlabLanguage39
擬合曲線圖由圖可見,三次擬合結果較好。
2024/11/8ApplicationofMatlabLanguage40
2.3數值表示、變量及表達式數值的記述
Matlab的數只采用習慣的十進制表示,可以帶小數點和負號;其缺省的數據類型為雙精度浮點型(double)。例如:3-100.0011.3e101.256e-6變量命令規則變量名、函數名對字母的大小寫是敏感的。如myVar與myvar表示兩個不同的變量。變量名第一個字母必須是英文字母。變量名可以包含英文字母、下劃線和數字。變量名不能包含空格、標點。變量名最多可包含63個字符(6.5及以后的版本)。
2024/11/8ApplicationofMatlabLanguage41
2.3數值表示、變量及表達式(續)Matlab預定義的變量變量名意義ans最近的計算結果的變量名epsMATLAB定義的正的極小值=2.2204e-16pi圓周率πinf∞值,無限大i或j虛數單元,sqrt(-1)NaN非數,0/0、∞/∞〖說明〗每當MATLAB啟動完成,這些變量就被產生。MATLAB中,被0除不會引起程序中斷,給出報警的同時用inf或NaN給出結果。用戶只能臨時覆蓋這些預定義變量的值,Clear或重啟MATLAB可恢復其值。
2024/11/8ApplicationofMatlabLanguage42
2.3數值表示、變量及表達式
(續)運算符和表達式運算數學表達式MATLAB運算符MATLAB表達式加a+b+a+b減a-b-a-b乘axb*a*b除a/b或a\b/或\a/b或a\b冪^a^b〖說明〗Matlab用“\”和”/”分別表示“左除”和“右除”。對標量而言,兩者沒有區別。對矩陣產生不同影響。MATLAB表達式的書寫規則與“手寫方式”幾乎完全相同。表達式按與常規相同的優先級自左至右執行運算。優先級:指數運算級別最高,乘除次之,加減最低。括號改變運算的次序。
2024/11/8ApplicationofMatlabLanguage43
2.3數值表示、變量及表達式
(續)復數及其運算MATLAB中復數的表達:z=a+bi,其中a、b為實數。MATLAB把復數作為一個整體,象計算實數一樣計算復數。【例2.3-1】復數z1=3+4i,z2=1+2i,z3=
計算>>z1=3+4*i,z2=1+2*i,z3=2*exp(i*pi/6),z=z1*z2/z3>>z_real=real(z),z_image=imag(z),>>z_angle=angle(z),z_length=abs(z),
2024/11/8ApplicationofMatlabLanguage44
課堂總結對MATALB整個軟件產品進行了概述歷史發展軟件產品家族體系構成M語言的特點MATLAB的入門知識MATLAB桌面MATLAB數值的記述和數據顯示格式變量及其命名規則運算符及表達式常用的MATLAB命令在線幫助的使用
2024/11/8ApplicationofMatlabLanguage45
思考題簡述MATALB軟件的功能及特點。簡述MATALB變量的命名規則。熟悉課件中的例子。Matlab語言及其應用第2講
2024/11/8ApplicationofMatlabLanguage47
實驗安排
2024/11/8ApplicationofMatlabLanguage48
工作空間Matlab系統界面
2024/11/8ApplicationofMatlabLanguage49
2.2命令窗口
(續)【例2.2-5】計算半徑為5.2m的圓的周長和面積。>>radius=5.2;%圓的半徑>>area=pi*5.2^2,
circle_len=2*pi*5.2area=
84.9487circle_len=
32.6726以上兩例,命令行中用到了等號“=”。計算結果不再賦給“ans”,而是賦給用戶指定的變量y、area、circle_len。無論是預定義變量還是用戶自定義變量都被存儲在系統的工作空間內,即系統定義的一個存儲窗口變量的內存空間。Who、whos命令用來顯示工作空間的變量clear命令用來清除工作空間的變量。
2024/11/8ApplicationofMatlabLanguage50
2.2命令窗口(續)>>who>>whosYourvariablesare:circle_lenarearadius
NameSizeBytesClassarea1x18doublearraycircle_len1x18doublearrayradius1x18doublearrayGrandtotalis3elementsusing24bytes
2024/11/8ApplicationofMatlabLanguage51
2.2命令窗口
(續)>>clearradius>>whoYourvariablesare:circle_lenarea>>cleararea>>whosYourvariablesare:NameSizeBytesClasscircle_len1x18doublearrayGrandtotalis1elementsusing8bytes
2024/11/8ApplicationofMatlabLanguage52
2.2命令窗口
(續)數值顯示格式設置缺省顯示格式:簡潔的短(shortg,7位有效數字)格式窗口命令及語法格式:format顯示格式關鍵字如:formatlong%15位數字顯示常見通用命令命令 含義clc 清除命令窗口的顯示內容clear 清除Matlab工作空間中保存的變量who或whos 顯示Matlab工作空間中的變量信息dir 顯示當前工作目錄的文件和子目錄清單cd 顯示或設置當前工作目錄type 顯示指定m文件的內容help或doc 獲取在線幫助quit或exit 關閉/推出MATALB
2024/11/8ApplicationofMatlabLanguage53
2.3工作空間查看工作空間內存變量,可以由who、whos。命名新變量修改變量名刪除變量繪圖保存變量數據裝入數據
2024/11/8ApplicationofMatlabLanguage54
2.4歷史窗口歷史窗口:首先記錄每次啟動時間并記錄在命令窗口輸入命令,此次運行期間,輸入的所有命令被記錄為一組,并以此次啟動時間為標志。使用歷史窗口:可以查看命令窗口輸入過的命令或語句可以選擇一條或多條命令執行拷貝、執行、創建M文件等。要清除歷史記錄,可以選擇Edit菜單中的ClearCommandHistory
命令
2024/11/8ApplicationofMatlabLanguage55
2.5當前目錄窗口和搜索路徑當前目錄窗口:指Matlab運行時的工作目錄。只有在當前目錄和搜索路徑下的文件、函數才可以被運行和調用。如果沒有特殊指明,數據文件也將存放在當前目錄下;用戶可以將自己的工作目錄設置成當前目錄,從而使得所有操作都在當前目錄中進行。
2024/11/8ApplicationofMatlabLanguage56
搜索路徑:指Matlab執行過程中對變量、函數和文件進行搜索的路徑。在File菜單中選擇SetPath命令或在命令窗口輸入pathtool命令,出現搜索路徑設置對話框:!修改完搜索路徑后,需要進行保存。
2024/11/8ApplicationofMatlabLanguage57
2.6獲取在線幫助MATLAB提供的幫助信息有兩類簡單純文本幫助信息helplookfor(條件比較寬松)例:inverse窗口式綜合幫助信息(文字、公式、圖形)dochelpwin
2024/11/8ApplicationofMatlabLanguage58
【功能演示-1】求方程的根求方程的全部根。p=[2,0,-3,71,-9,13];%建立多項式系數向量x=roots(p);求根x=-3.49141.6863+2.6947i1.6863-2.6947i0.0594+0.4251i0.0594-0.4251i
2024/11/8ApplicationofMatlabLanguage59
【功能演示-2】求解線性方程組a=[2,3,-1;8,2,3;45,3,9];%建立系數矩陣ab=[2;4;23];%建立列向量bz=inv(a)*bz=0.55310.2051-0.2784
2024/11/8ApplicationofMatlabLanguage60
符號計算symsxyz
%建立符號變量[x,y,z]=solve(2*x+3*y-z-2,8*x+2*y+3*z-4,45*x+3*y+9*z-23)x=151/273y=8/39z=-76/273
2024/11/8ApplicationofMatlabLanguage61
【功能演示-3】求解定積分
求解
I=quad('x.*log(1+x)',0,1)ans=0.250或symsxint(x*log(1+x),0,1)ans=1/4
2024/11/8ApplicationofMatlabLanguage62
【功能演示-4】多項式曲線擬合考慮如下x-y一組實驗數據:x=[1,2,3,4,5,6,7,8,9,10]y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]注:一次多項式擬合:p1=polyfit(x,y,1)三次多項式擬合:p3=polyfit(x,y,3)plot原始數據、一次擬合曲線和三次擬合曲線x2=1:0.1:10;y1=polyval(p1,x2)y3=polyval(p3,x2)plot(x,y,’*’,x2,y1,‘:’,x2,y3)
2024/11/8ApplicationofMatlabLanguage63
擬合曲線圖由圖可見,三次擬合結果較好。第2章Matlab數據及其運算
Matlab數據類型非常豐富,除數值型、字符型等基本數據類型外,還有結構體、單元等更為復雜的數據類型。各種數據類型都以矩陣形式存在,矩陣是Matlab最基本的數據對象,并且矩陣的運算是定義在復數域上的。
2024/11/8ApplicationofMatlabLanguage65
2.1數值表示、變量及表達式數值的記述
Matlab的數只采用習慣的十進制表示,可以帶小數點和負號;其缺省的數據類型為雙精度浮點型(double)。例如:3-100.0011.3e101.256e-6變量命令規則變量名、函數名對字母的大小寫是敏感的。如myVar與myvar表示兩個不同的變量。變量名第一個字母必須是英文字母。變量名可以包含英文字母、下劃線和數字。變量名不能包含空格、標點。變量名最多可包含63個字符(6.5及以后的版本)。
2024/11/8ApplicationofMatlabLanguage66
2.1數值表示、變量及表達式(續)Matlab預定義的變量變量名意義ans最近的計算結果的變量名epsMATLAB定義的正的極小值=2.2204e-16pi圓周率πinf∞值,無限大i或j虛數單元,sqrt(-1)NaN非數,0/0、∞/∞〖說明〗每當MATLAB啟動完成,這些變量就被產生。MATLAB中,被0除不會引起程序中斷,給出報警的同時用inf或NaN給出結果。用戶只能臨時覆蓋這些預定義變量的值,Clear或重啟MATLAB可恢復其值。
2024/11/8ApplicationofMatlabLanguage67
2.1數值表示、變量及表達式(續)運算符和表達式運算數學表達式MATLAB運算符MATLAB表達式加a+b+a+b減a-b-a-b乘axb*a*b除a/b或a\b/或\a/b或a\b冪^a^b〖說明〗Matlab用“\”和”/”分別表示“左除”和“右除”。對標量而言,兩者沒有區別。對矩陣產生不同影響。MATLAB表達式的書寫規則與“手寫方式”幾乎完全相同。表達式按與常規相同的優先級自左至右執行運算。優先級:指數運算級別最高,乘除次之,加減最低。括號改變運算的次序。
2024/11/8ApplicationofMatlabLanguage68
2.1數值表示、變量及表達式(續)復數及其運算MATLAB中復數的表達:z=a+bi,其中a、b為實數。MATLAB把復數作為一個整體,象計算實數一樣計算復數。【例2.3-1】復數z1=3+4i,z2=1+2i,z3=
計算z1=3+4*i,z2=1+2*i,z3=exp(i*pi/6),z=z1*z2/z3z_real=real(z),z_image=imag(z),z_angle=angle(z),z_length=abs(z),
2024/11/8ApplicationofMatlabLanguage69
2.2Matlab矩陣(數組)的表示數組的概念一維數組變量的創建二維數組變量的創建數組元素的標識與尋訪數組運算多維數組
2024/11/8ApplicationofMatlabLanguage70
2.2.1.數組(array)的概念數組定義:按行(row)和列(column)順序排列的實數或復數的有序集,被稱為數組。數組中的任何一個數都被稱為這個數組的元素,由其所在的行和列標識,這個標識也稱為數組元素的下標或索引。Matlab將標量視為1×1的數組。對m行、n列的2維數組a:計為m×n的數組a;*行標識、列標識均從1開始;行標識從上到下遞增;列標識從左到右遞增。12345222232425332333435442434445a(3,4)=34rowisfirsta=
2024/11/8ApplicationofMatlabLanguage71
數組的分類一維數組,也稱為向量(vector)。行向量(rowvector)、列向量(columnvector)。二維數組(矩陣matrix)。多維數組。有效矩陣:每行元素的個數必須相同,每列元素的個數也必須相同。2.2.1.數組(array)的概念
2024/11/8ApplicationofMatlabLanguage72
2.2.1、數組(array)的概念(續)行向量列向量a(2,1)=3a(1,2)=2b(3)=3c(2)=2
2024/11/8ApplicationofMatlabLanguage73
2.2.2、創建一維數組變量第一種方法:使用方括號“[]”操作符【例2-1】創建數組(行向量)a=[13pi3+5i]>>a=[13pi3+5*i]%ora=[1,3,pi,3+5*i]
a=1.00003.00003.14163.0000+5.0000i所有的向量元素必須在操作符“[]”之內;向量元素間用空格或英文的逗點“,”分開。第二種方法:使用冒號“:”操作符【例2-2】創建以1~10順序排列整數為元素的行向量b。>>b=1:10b=12345678910
2024/11/8ApplicationofMatlabLanguage74
2.2.2、創建一維數組變量(續)【例2-3】鍵入并執行c=1:2:10和d=1:2:9>>c=1:2:10c=13579>>d=1:2:9d=13579利用冒號“:”操作符創建行向量的基本語法格式:x=Start:Increment:EndStart表示新向量x的第一個元素;新向量x的最后一個元素不能大于End;Increment可正可負,若負,則必須Start>End;若正,則必須Start<End,否則創建的為空向量。若Increment=1,則可簡寫為:x=Start:End。
2024/11/8ApplicationofMatlabLanguage75
2.2.2、創建一維數組變量(續)第三種方法:利用函數linspace函數linspace的基本語法x=linspace(x1,x2,n)該函數生成一個由n個元素組成的行向量;x1為其第一個元素;x2為其最后一個元素;x1、x2之間元素的間隔=(x2-x1)/(n-1)。如果忽略參數n,則系統默認生成100個元素的行向量。【例2-4】鍵入并執行x=linspace(1,2,5)x=1.00001.25001.50001.75002.0000同學們可以在實驗時察看x=linspace(1,2)執行結果。
2024/11/8ApplicationofMatlabLanguage76
2.2.2、創建一維數組變量(續)第四種方法:利用函數logspace通過實驗認識該函數的功能。列向量的創建使用方括號“[]”操作符,使用分號“;”分割行。【例2-5】鍵入并執行x=[1;2;3]X=123使用冒號操作符【例2-6】鍵入并執行x=(1:3)’%“’”表示矩陣的轉置
2024/11/8ApplicationofMatlabLanguage77
2.2.2、創建一維數組變量
(續)創建數組變量的一般方法創建變量的賦值語句的一般格式var=expressionvar為變量名expression為MATLAB合法表達式可以是單獨的常數值或數值數組;也可以由常數值、其他變量(部分或全部)、數值數組和運算符(+、-等)構成。【例2-7】鍵入并執行a=[01+6];b=[a67];c=[6a7];d=[6a7a];
2024/11/8ApplicationofMatlabLanguage78
2.2.2、創建一維數組變量
(續)一旦被創建,變量就被存儲在工作空間,可以通過“Workspace”窗口或在“CommandWindow”執行“whos”命令察看。操作一:使用“Workspace”窗口察看變量操作二:使用“whos”命令察看變量
2024/11/8ApplicationofMatlabLanguage79
2.2.3、創建二維數組變量第一種方法:使用方括號“[]”操作符使用規則數組元素必須在“[]”內鍵入;行與行之間須用分號“;”間隔,也可以在分行處用回車鍵間隔;行內元素用空格或逗號“,”間隔。【例3-1】鍵入并執行a2=[123;456;789]a2=123456789【例3-2】鍵入并執行a2=[1:3;4:6;7:9]%結果同上
2024/11/8ApplicationofMatlabLanguage80
2.2.3、創建二維數組變量(續)【例3-3】由向量構成二維數組。>>a=[123];b=[234];>>c=[a;b];>>c1=[ab];第二種方法:函數方法函數ones(生成全1矩陣)、zeros(生成全0矩陣)、reshape“helpelmat”獲得基本的矩陣生成和操作函數列表【例3-4】創建全1的3x3數組。>>ones(3)【例3-5】創建全1的3x4數組。>>ones(3,4)
2024/11/8ApplicationofMatlabLanguage81
2.2.3、創建二維數組變量(續)【例3-5】reshape的使用演示>>a=-4:4a=-4-3-2-101234>>b=reshape(a,3,3)b=-4-12-303-214數組元素的排列順序,從上到下按列排列,先排第一列,然后第二列,…要求數組的元素總數不變。
2024/11/8ApplicationofMatlabLanguage82
4、數組元素的標識與尋訪數組元素的標識“全下標(index)”標識經典數學教科書采用“全下標”標識法:每一維對應一個下標。如對于二維數組,用“行下標和列下標”標識數組的元素,a(2,3)就表示二維數組a的“第2行第3列”的元素。對于一維數組,用一個下標即可,b(2)表示一維數組b的第2個元素,無論b是行向量還是列向量。“單下標”(linearindex)標識所謂“單下標”標識就是用一個下標來表明元素在數組的位置。對于二維數組,“單下標”編號:設想把二維數組的所有列,按先后順序首尾相接排成“一維長列”,然后自上往下對元素位置執行編號。兩種“下標”標識的變換:sub2ind、ind2sub
2024/11/8ApplicationofMatlabLanguage83
4、數組元素的標識與尋訪(續)【例4-1】單下標的使用>>a=zeros(2,5);>>a(:)=-4:5a=-4-2024-3-1135注意數組的排列順序。
2024/11/8ApplicationofMatlabLanguage84
4、數組元素的標識與尋訪(續)元素與子數組的尋訪與賦值【例4-3】一維數組元素與子數組的尋訪與賦值>>a=linspace(1,10,5)a=1.00003.25005.50007.750010.0000>>a(3)%尋訪a的第3個元素ans=5.5000>>a([125])%尋訪a的第1、2、5個元素組成的子數組ans=1.00003.250010.0000
2024/11/8ApplicationofMatlabLanguage85
4、數組元素的標識與尋訪(續)>>a(1:3)%尋訪前3個元素組成的子數組ans=1.00003.25005.5000>>a(3:-1:1)%由前3個元素倒序構成的子數組ans=5.50003.25001.0000>>a(3:end)ans=5.50007.750010.0000>>a(3:end-1)ans=5.50007.7500%第3個及其后所有元素構成的子數組函數end作為參數使用,返回最后一個元素的下標
2024/11/8ApplicationofMatlabLanguage86
>>a([12355321])ans=1.00003.25005.500010.000010.00005.50003.25001.0000數組元素可以被任意重復訪問,構成長度大于原數組的新數組。>>a(6)???Indexexceedsmatrixdimensions.下標值超出了數組的維數,導致錯誤>>a(2.1)???Subscriptindicesmusteitherberealpositiveintegersorlogicals.下標值只能取正整數或邏輯值4、數組元素的標識與尋訪(續)
2024/11/8ApplicationofMatlabLanguage87
4、數組元素的標識與尋訪(續)>>a(3)=0%修改數組a的第3元素值為0a=1.00003.250007.750010.0000>>a([25])=[11]a=1.00001.000007.75001.0000可以修改指定數組元素的值一次可以修改多個數組元素的值要修改的數組元素的個數應與送入數組的元素個數相同
2024/11/8ApplicationofMatlabLanguage88
4、數組元素的標識與尋訪(續)【例4-3】二維數組元素與子數組的尋訪與賦值>>a_2=zeros(2,4)%創建2x4的全0數組a_2=00000000>>a_2(:)=1:8a_2=13572468>>a_2([258])%單下標方式尋訪多個元素ans=258注意元素的排列順序
2024/11/8ApplicationofMatlabLanguage89
4、數組元素的標識與尋訪(續)>>a_2([258])=[102030]a_2gt;>a_2(:,[23])=ones(2)%雙下標方式尋訪并修改a_2=1117101130二維數組可以“單下標”方式或“全下標”方式訪問、賦值;“單下標”方式賦值時,等號兩邊涉及的元素個數必須相等;“全下標”方式賦值時,等號右邊數組的大小必須等于原數組中涉及元素構成的子數組的大小。
2024/11/8ApplicationofMatlabLanguage90
4、數組元素的標識與尋訪(續)>>a_2(:,end)ans=730>>a_2(:,end-1)ans=11>>a_2(:,end:-1:3)ans=71301>>a_2(end,:)ans=101130>>a_2(end,[2:4])ans=1130>>a_2([46])=6:7a_2=1117106730>>a_2(end,[2:end-1])
Whatistheresult?
2024/11/8ApplicationofMatlabLanguage91
4、數組元素的標識與尋訪(續)【例4-4】
size、length函數>>a=ones(4,6)*6>>m=size(a)>>len=length(a)>>b=1:5;>>length(b)>>c=b’>>length(c)
size函數返回變量的大小,即變量數組的行列數
length函數返回變量數組的最大維數
2024/11/8ApplicationofMatlabLanguage92
4、數組元素的標識與尋訪(續)雙下標到單下標的轉換【例4-5】
sub2ind函數-雙下標轉換為單下標>>A=[172418;222714;461320];>>A(:,:,2)=A-10>>A(2,1,2)>>sub2ind(size(A),2,1,2)>>A(14)
2024/11/8ApplicationofMatlabLanguage93
4、數組元素的標識與尋訪(續)單下標到雙下標的轉換【例4-6】
ind2sub函數-雙下標轉換為單下標>>b=zeros(3);>>b(:)=1:9>>IND=[3456]>>[I,J]=ind2sub(size(b),IND)Matlab語言及其應用第3講
2024/11/8ApplicationofMatlabLanguage95
2.2.2、創建一維數組變量第一種方法:使用方括號“[]”操作符【例2-1】創建數組(行向量)a=[13pi3+5i]>>a=[13pi3+5*i]%ora=[1,3,pi,3+5*i]
a=1.00003.00003.14163.0000+5.0000i所有的向量元素必須在操作符“[]”之內;向量元素間用空格或英文的逗點“,”分開。第二種方法:使用冒號“:”操作符【例2-2】創建以1~10順序排列整數為元素的行向量b。>>b=1:10b=12345678910
2024/11/8ApplicationofMatlabLanguage96
2.2.2、創建一維數組變量(續)【例2-3】鍵入并執行c=1:2:10和d=1:2:9>>c=1:2:10c=13579>>d=1:2:9d=13579利用冒號“:”操作符創建行向量的基本語法格式:x=Start:Increment:EndStart表示新向量x的第一個元素;新向量x的最后一個元素不能大于End;Increment可正可負,若負,則必須Start>End;若正,則必須Start<End,否則創建的為空向量。若Increment=1,則可簡寫為:x=Start:End。
2024/11/8ApplicationofMatlabLanguage97
2.2.2、創建一維數組變量(續)第三種方法:利用函數linspace函數linspace的基本語法x=linspace(x1,x2,n)該函數生成一個由n個元素組成的行向量;x1為其第一個元素;x2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 核電工程現場施工安全操作規程考核試卷
- 衛生材料在汽車制造中的應用考核試卷
- 箱包行業創新材料應用考核試卷
- 守株待兔新編初二語文作文
- 描寫姥爺的初二語文作文
- 紙板生產中的物流與倉儲管理策略考核試卷
- 密封用填料的聲學性能分析考核試卷
- 九級語文上冊第五單元提高練習5課人教新課標版
- 租賃企業運營模式解析考核試卷
- 2-9邏輯函數的標準形式-最小項表達式
- 貴州國企招聘2025貴州路橋集團有限公司招聘35人筆試參考題庫附帶答案詳解
- 衛生管理行業人才培養與社會責任分析試題及答案
- DB32T 5082-2025建筑工程消防施工質量驗收標準
- 施工安全的教育培訓記錄表
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗收規范
- 農村常用法律法規知識講座課件(村干部培訓)
- 年產5萬噸甲醇氧化制甲醛工藝及反應器設計
- 國家職業技能標準 (2021年版) 鑒定估價師(機動車鑒定評估師)
- 公司組織架構圖56832
- USB 數據線 SOP
- 在自己的城里旅行
評論
0/150
提交評論