




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1Matlab桌面快捷方式Matlab基本操作2§1.Matlab的操作界面窗口說明歷史指令窗口工作空間瀏覽器命令窗口當前目錄瀏覽器(后臺)開始按鈕切換按鈕當前工作目錄設定命令提示符號
輸入命令/指令區(qū)域3§2Matlab軟件的常用窗口簡介命令窗口(CommandWindow)4歷史命令(指令)窗口5工作空間瀏覽器窗口6當前目錄瀏覽器(CurrentDirectoryBrowser)7內存數(shù)組編輯器(ArrayEditor)8M文件編輯/調試器窗口9Matlab的交互界面分類目錄窗口10幫助導航/瀏覽器(HelpNavigator/Browser)11§3MATLAB的運行方式一、命令行運行方式
演算紙式的科學計算語言
在MATLAB的應用中,最基本、最簡單的應用,就是在命令窗口中直接輸入命令來實現(xiàn)計算或繪圖功能。
MATLAB命令行的一般形式為:變量=表達式或:表達式
(賦值語句)12命令行運行方式(續(xù))①使用MATLAB最簡單的方式是將MATLAB的命令窗口看作計算器,通過輸入數(shù)學算式直接計算。
>>1+2+3+4+5↙ans=15②如果在輸入的表達式后面跟上分號“;”,那么運行后就不會馬上顯示運算的結果,必須鍵入輸出變量后才能顯示運算結果。用分號關閉不必要的輸出會使程序運行速度成倍甚至成百倍地提高。
>>1+2+3+4+5;↙則不會馬上顯示運算結果,要得到運算結果,必須
>>ans↙
則顯示結果為
ans=1513命令行運行方式(續(xù))③如果在表達式后面跟上逗號“,”或什么都不跟,運行后會馬上顯示該表達式的運算結果。④如果一個表達式很長,可以用續(xù)行號“…”將其延續(xù)到下一行。>>1+2+3+4+5+…↙%注意加號寫在本行。
6+7+8+9+10↙
則輸出結果
ans=55
如果續(xù)行號前面是數(shù)字,直接使用續(xù)行號會出現(xiàn)錯誤,有三種解決辦法,一是設法使續(xù)行號前面是一個運算符號,二是先空一格再加續(xù)行號,三是再加一個點。14⑤在一行中也可以寫幾個語句,它們之間用逗號“,”或分號“;”隔開。
>>A=[1,2,3.3,sin(4)],X=1966/310+1↙
則輸出結果
A=
1.00002.00003.3000,-0.7568X=7.3419。命令行運行方式(續(xù))15二、m文件運行方式
所謂m文件,就是用MATLAB語言編寫的、可以在MATLAB中運行的程序。它是以普通文本格式存放的,故可以用任何文本編輯軟件進行編輯。MATLAB提供的m文件編輯器就是程序編輯器。在File菜單中選擇NEW,再選擇M-file,或點擊新建圖標,就可以調出m文件編輯器,用戶可以用此編輯器編寫m文件。m文件有兩種形式,一種稱為命令文件(ScriptFile),另一種稱為函數(shù)文件(FunctionFile),兩種文件的擴展名都是m。16(1)命令文件
如果要輸入較多的命令,或者要經(jīng)常對某些命令進行重復的輸入,則可以將這些命令按執(zhí)行順序存放在一個m文件中,以后只要在MATLAB的命令窗口中輸入該文件的文件名,系統(tǒng)就會調入該文件并執(zhí)行其中的全部命令。這種形式就是MATLAB的命令文件。命令文件中的語句可以訪問MATLAB工作空間的所有變量;而在命令文件執(zhí)行過程中創(chuàng)建的變量也會一直保留在工作空間中,其他命令或m文件都可以訪問這些變量。命令文件相當于DOS批處理文件。17命令文件(續(xù))求滿足1+2+3+…n<100的最大正整數(shù)n的MATLAB程序為:sum=0;n=0;%賦初始值whilesum<100%判斷當前的和是否小于100n=n+1;%如果沒有超過100,則對n加1sum=sum+n;%計算最新的和endsum=sum-n;%當循環(huán)結束時有sum>=100,故應對sum減nn=n-1;%當循環(huán)結束時有sum>=100,故應對n減1n,sum%顯示最大正整數(shù)n以及和sum18命令文件(續(xù))將上述程序存入文件fl.m,然后在命令窗口鍵入>>fl↙
顯示結果為n=13sum=91指出:程序中由符號“%”開始的文字都是注釋文字,用來對程序或程序行行進行注釋說明,符號“%”稱為注釋符,MATLAB在執(zhí)行時將忽略“%”后的內容。19(2)函數(shù)文件函數(shù)文件是另一類m文件,可以像庫函數(shù)一樣方便地被調用,MATLAB提供的許多工具箱,是由函數(shù)文件組成的。對于某一類特殊問題,用戶可以建立系統(tǒng)的函數(shù)文件,形成專用工具箱。函數(shù)文件的第一行有特殊的要求,它必須遵循如下的形式:
function<因變量>=<函數(shù)名>(<自變量>)其他各行都是程序運行語句,沒有特別要求。函數(shù)文件的文件名必須是<函數(shù)名>.m。20函數(shù)文件(續(xù))實現(xiàn)符號函數(shù)運算功能的函數(shù)m文件為:functiony=sgn(x)%這是一個定義符號函數(shù)y=sgn(x)的函數(shù)文件。ifx<0y1=-1;elseifx==0y1=0;elsey1=1;endy=y1;21函數(shù)文件(續(xù))
將上述程序存為文件sgn.m,便可以將其作為普通的MATLAB函數(shù)來使用:>>x=4/3*pi;↙y=3*sgn(sin(x))↙顯示結果為:y=-322三、MATLAB的常用命令MATLAB可以通過菜單對工作著的窗口進行操作,也可以通過鍵盤在命令窗口輸入命令進行操作,下面給出幾個常用的通用命令。quit關閉MATLABexit關閉MATLABclc清除MATLAB命令窗口中的所有顯示內容clear清除工作空間中保存的所有變量其他命令可以在學習應用中逐步熟悉。23四、MATLAB的基本運算運算數(shù)學表達式MATLAB運算符MATLAB表達式示例加a+b+a+b1+2減a-b-a-b5-3乘a×b*a*b2*3除a÷b/(右除)或\(左除)
a/b或b\a6/2或2\6冪a^b^a^b2^3指出:右除相當于通常的除法。
24§2-4MATLAB的變量與函數(shù)一、變量變量就是在程序的運行過程中,其數(shù)值可以變化的量(數(shù)據(jù)),它可以代表一個或若干個內存單元(變量的地址)中的數(shù)據(jù)。為了對所有的變量所對應的存儲單元進行訪問,需要給變量命名。MATLAB變量命名的規(guī)則是:①以字母開頭,后面可以跟字母、數(shù)字或下劃線。②不超過31個字符。③字符間不可以留空格。④區(qū)分大小寫。25MATLAB的變量與函數(shù)(續(xù))系統(tǒng)變量變量名意義ans用于存儲計算結果的默認變量pi圓周率πinf(Inf)無窮大∞,例如1/0eps計算機的最小數(shù),和1相加產(chǎn)生比1大的數(shù),在pc機上為2-52。NaN(nan)不定量,如0/0i或j虛數(shù)單位,i=j=sqrt(-1)26MATLAB的變量與函數(shù)(續(xù))指出:①自定義變量名一般不應和系統(tǒng)變量同名。②在MATLAB中輸入的內容直接決定變量的類型。③使用who和whos命令可以查看變量。④使用clear命令可以刪除所有定義過的變量。如果只是刪除其中某些變量,應在clear后面指定要刪除的變量名。例如clearaz⑤有了變量,就可以組成表達式,也就可以對變量進行賦值。MATLAB的賦值語句有兩種形式?!褡兞棵奖磉_式●表達式在第一種情況下,MATLAB將右邊的表達式的值賦值給左邊的變量,在第二種情況,MATLAB將表達式的值賦值給系統(tǒng)變量ans。⑥所謂表達式,就是用運算符號把特殊字符、函數(shù)名、變量名等有關運算量連接起來的式子,其結果是一個矩陣。27二、函數(shù)數(shù)學函數(shù)函數(shù)名含義函數(shù)名含義abs(x)x的絕對值atant(x)x的反正切sqrt(x)x的平方根cot(x)x的余切exp(x)e的x次方acot(x)x的反余切sin(x)x的正弦log(x)x的自然對數(shù)cos(x)x的余弦log10(x)x的常用對數(shù)asin(x)x的反正弦sinh(x)雙曲正弦acos(x)x的反余弦cosh(x)雙曲余弦tan(x)x的正切28函數(shù)(續(xù))機器函數(shù)
pause程序將暫時停在該函數(shù)所在位置,擊任意鍵程序繼續(xù)執(zhí)行
echoon在命令窗口顯示正在執(zhí)行的程序指令
cputime給出MATLAB所耗用的總機器時間
clock給出日期及當前時間指出
在表達式中,函數(shù)一定要出現(xiàn)在等式的右邊。每個函數(shù)對其自變量的個數(shù)和格式都有一定要求,如三角函數(shù)的單位是“弧度”而不是“度”。函數(shù)允許嵌套,如sqrt(sin(10))。系統(tǒng)函數(shù)的函數(shù)名小寫。注意函數(shù)名也是區(qū)分大小寫的。29§2-4MATLAB的數(shù)值計算MATLAB運算的基本數(shù)據(jù)對象是矩陣,標量可以看作是1×1的矩陣,向量可以看作是1×n或n×1的矩陣。因此,可以說MATLAB的數(shù)據(jù)結構就是矩陣,以矩陣運算為代表的基本運算功能一直是MATLAB引以為自豪的核心與基礎。30一、矩陣的創(chuàng)建矩陣是線性代數(shù)的基本運算單元。通常矩陣是指含有m行n列數(shù)值的矩形結構。矩陣中的元素可以是實數(shù)也可以是復數(shù),由此可以將矩陣劃分為實矩陣和復矩陣。MATLAB支持線性代數(shù)所定義的全部矩陣運算。在MATLAB中創(chuàng)建矩陣應遵循以下原則:①矩陣的元素必須在方括號“[]”中。②矩陣的同行元素之間用空格或逗號“,”分隔。③矩陣的行與行之間用分號“;”或回車符分隔。④矩陣的尺寸不必預先定義。⑤矩陣元素可以是數(shù)值、變量、表達式或函數(shù)。如果矩陣元素是表達式,系統(tǒng)將自動計算出結果。31矩陣的創(chuàng)建(續(xù))1、直接輸入法-在命令窗口按規(guī)則輸入方式創(chuàng)建矩陣例1.在命令窗口創(chuàng)建簡單的數(shù)值矩陣。
>>A=[132;310;215]
回車后在命令窗口顯示如下結果
A=132310215
例2.在命令窗口創(chuàng)建帶運算表達式的矩陣,不顯示結果。
>>y=[sin(pi/3),cos(pi/6);log(20),exp(2)];
輸入“y”回車,在命令窗口顯示出來。
>>y↙
顯示出的結果為
y=0.86600.86602.99577.389132矩陣的創(chuàng)建(續(xù))指出:在矩陣較大時,用分行輸入的方式(用回車代替分號區(qū)分不同行)比較接近于線性代數(shù)中的矩陣,更直觀一些。任何矩陣元素內部不能有空格,否則會被認定是兩個元素。33矩陣的創(chuàng)建(續(xù))2、通過數(shù)據(jù)文件創(chuàng)建矩陣-導入其他程序創(chuàng)建的數(shù)據(jù)例3.用記事本輸入一組數(shù)據(jù)
1234234543455761
保存為fort.txt,用load命令讀入,
>>loadfort.txt↙
輸入fort就可以在命令窗口顯示創(chuàng)建的矩陣。
>>fort↙
顯示結果為
fort=1234234543455761
34矩陣的創(chuàng)建(續(xù))指出:①通過load命令導入數(shù)據(jù)是形成矩陣的重要方法,解決了在工作現(xiàn)場沒有MATLAB系統(tǒng)和其他數(shù)據(jù)管理系統(tǒng)的問題,可以只用基本的文字處理工具完成。②MATLAB對文本形式的數(shù)據(jù)文件的擴展名并不計較,將上述數(shù)據(jù)文件換名保存為fort.1,仍然可以如上導入、應用。③文件名可以定義為m1.txt或m1.1。④但是,如果將文件命名為1m.txt,則顯示出錯信息:“Error:Missingoperator(算子),comma(逗號),orsemicolon(分號).”⑤如果文件名命名為3.txt、1.txt、3.1等,則顯示的是主文件名所用的數(shù)字。⑥數(shù)據(jù)文件保存為word或wps等的文件格式同樣可以引用。35矩陣的創(chuàng)建(續(xù))⑦如果數(shù)據(jù)文件中有字母,則不能引用,顯示出錯信息,即使該字母在前面的指令中已經(jīng)賦值也不可。⑧如果數(shù)據(jù)文件中有算式,則不能完整顯示,算式元素將僅顯示第一個運算符(或關系符)前的數(shù)字。⑨導入其他數(shù)據(jù),如圖像數(shù)據(jù)、Excel數(shù)據(jù)時,可以使用數(shù)據(jù)導入向導ImportWizard。36矩陣的創(chuàng)建(續(xù))3、通過m文件創(chuàng)建矩陣-將矩陣建立為m文件先將矩陣按創(chuàng)建原則寫入一個m文件中,在MATLAB命令窗口或程序中直接運行該m文件(輸入該m文件名),即可將矩陣調入工作空間。4、通過函數(shù)創(chuàng)建矩陣函數(shù)功能eye(n)產(chǎn)生n階單位矩陣ones(m,n)產(chǎn)生m×n矩陣,元素都是“1”zeros(m,n)產(chǎn)生m×n矩陣,元素都是“0”(零矩陣)[]產(chǎn)生空矩陣37特殊矩陣的實現(xiàn)eye、zeros、ones、rand、diagA=eye(n)A=eye(size(B))A=eye(n,m)A=zeros(n)A=zeros(size(B))A=zeros(n,m)A=ones(n)A=ones(size(B))A=ones(n,m)A=rand(n)A=rand(size(B))A=rand(n,m)A=diag(B),當B為向量時,構成一個以向量元素為對角線的對角矩陣,當B為矩陣時,構成一個以B的主對角線元素為對角線的對角矩陣38矩陣的創(chuàng)建(續(xù))指出:①當某一項操作無結果時,MATLAB將返回一個空矩陣,空矩陣的大小為0,但它確實存在于工作空間,可以通過變量名訪問。②輸入后的矩陣將保存在MATLAB工作空間中,并可以隨時被訪問調用,如果用戶不用“clear”命令清除它,或給它重新賦值,該矩陣將一直保存在工作空間直到MATLAB關閉為止。③如果矩陣函數(shù)中只有一個參數(shù),則為方陣。④四種創(chuàng)建矩陣的方法各有優(yōu)點:直接輸入法方便簡捷;通過數(shù)據(jù)文件創(chuàng)建有利于調用其他軟件產(chǎn)生的數(shù)據(jù);通過m文件創(chuàng)建是用于創(chuàng)建較大尺寸的矩陣并便于修改;通過函數(shù)創(chuàng)建可以由MATLAB內部函數(shù)創(chuàng)建一些特殊矩陣。39矩陣的創(chuàng)建(續(xù))5、其他構造矩陣的方法-冒號法[1]冒號法構造向量冒號表達式的一般格式為:向量名=初值:步長:終值。例4.在窗口輸入
>>x=0:0.5:2回車后顯示x=00.50001.00001.50002.0000。例5.在命令窗口輸入>>x=2:-0.5:0回車后顯示x=2.00001.50001.00000.5000040矩陣的創(chuàng)建(續(xù))指出:①步長可以省略,省略步長,則步長為1。②步長可以為負,此時初值大于終值。③向量的元素比較多而又有增減規(guī)律時,這種方法非常便利。④冒號法表示向量時,向量的全體成員是從初值開始,以步長為增量,直到不超過終值的所有元素構成的序列。⑤冒號法的應用可以避免使用循環(huán),提高程序運行速度。41矩陣的創(chuàng)建(續(xù))[2]冒號法構造矩陣一般格式為:A(:,j):表示矩陣A的第j列;A(i,:):表示矩陣A的第i行。例6.建立矩陣。解:>>A(1,:)=1:5%設置矩陣的第1行A=1234542矩陣的創(chuàng)建(續(xù))>>A(2,:)=6:10%設置矩陣的第2行A=12345678910>>A(3,:)=11:15%設置矩陣的第3行,設置完成A=12345678910111213141543矩陣的創(chuàng)建(續(xù))指出:在MATLAB中,還可以利用函數(shù)linspace產(chǎn)生行向量,其調用格式為:
linspace(a,b,n)。其中a,b是向量的第一個和最后一個元素,n是元素的個數(shù)。這樣產(chǎn)生的向量的元素成等差數(shù)列。例如,>>linspace(1,4,5)ans=1.00001.75002.50003.25004.0000函數(shù)linspace被稱為線性等分函數(shù)。44矩陣的創(chuàng)建(續(xù))指出:
冒號法和應用linspace都可以創(chuàng)建具有遞增元素序列的向量,但是,用冒號法創(chuàng)建向量時,向量的元素不一定取到終值,而應用linspace則必然會取到,因為b表示的就是最后一個元素。45二、矩陣的運算
MATLAB對于矩陣與矩陣之間的運算的處理方法與線性代數(shù)中的相同運算運算符表達式加+A+B減-A-B乘*A*B除/(右除)或\(左除)
A/B或B\A冪^A^p轉置‘(單引號)A’46矩陣的計算(續(xù))說明:矩陣也可以和一個數(shù)之間進行運算。線性代數(shù)沒有定義除法運算,MATLAB為了便于計算,定義了矩陣的除法,并有左除和右除之分。
矩陣左除使用“\”運算符,右除使用“/”運算符。
X=A\B是解方程組A*X=B;X=B/A則是解方程組X*A=B。一般地說,A\B≠B/A。在算法上,A\B=inv(A)*B,inv是求某一個矩陣的逆矩陣;而B/A=B*inv(A)。指出:如果A*B=B*A=I(單位矩陣),稱A和B互為逆矩陣。 如果矩陣中有復數(shù)元素,那么轉置后得到它的復數(shù)共軛矩陣。47矩陣的運算(續(xù))例7.若創(chuàng)建矩陣A=[1,0,2;0,1,3;1,0,4],B=[1,2,3;4,5,6;7,8,9],C=[1,2;3,4;5,6]并計算A+B、A+3、A*C、A2、CT、A-1、A-1B。指出:A2=A^2;CT=C’;A-1=inv(A);A-1B=A\B(或inv(A)*B)在MATLAB系統(tǒng)中,還有一個數(shù)據(jù)結構是“數(shù)組”。數(shù)組在結構上和矩陣是完全一致的,唯一的區(qū)別是數(shù)組的運算不服從線性代數(shù)的規(guī)定,而是元素對元素間的運算。數(shù)組的加減運算與矩陣加減相同,數(shù)組的乘法、左除、右除、冪的運算符號分別是矩陣相應運算符前面加一個小圓點“.”。矩陣運算的一個重要的應用是解線性方程組。
48矩陣的運算(續(xù))例8.求下面方程組的根。解:解線性方程組,可以使用矩陣的左除“\”,即X=A\B。
>>A=[2,1,-3;3,-2,2;5,-3,-1];>>B=[5;5;16];%列向量
>>X=A\BX=1-3-2
49矩陣的運算(續(xù))指出:①線性方程組A*X=B有兩種解法:X=A\B或X=inv(A)*B,但一般用第一種解法,在MATLAB中,第二種解法所用時間是第一種解法的50倍。②可以看出,同樣解線性方程組,不同的算法的效率是有極大差距的,可見優(yōu)化和選擇算法是非常重要的。③求逆運算inv(A)是重要的代數(shù)運算。50三、矩陣的操作1、矩陣的大小測度
Size函數(shù)用來測試矩陣的大小,對于矩陣A,size(A)返回一個行向量,它包含了矩陣的行數(shù)m和列數(shù)n。如果專門顯示行數(shù)和列數(shù),則可以采用如下格式:
。例9.已知矩陣
求矩陣的大小。51矩陣的操作(續(xù))解:>>A=[11111;12345;1361015]%設A為已知矩陣A=11111123451361015>>d=size(A)%測試矩陣A的大小d=35>>d1=size(A,1)%測試矩陣的行數(shù)d1=3>>d2=size(A,2)%測試矩陣的列數(shù)d2=552矩陣的操作(續(xù))2、矩陣的元素操作例10.已知矩陣,寫出矩陣的元素A(2,3),將A(3,5)改為-1。解:>>A=[11111;12345;1361015]A=1111112345136101553矩陣的操作(續(xù))>>A(2,3)ans=3>>A(3,5)=-1A=111111234513610-154矩陣的操作(續(xù))例11.>>A=[132;310;215]A=132310215>>B=[436;514;346]B=436514346>>U(1,1)=A(1,1)+B(1,1);>>U(1,2)=A(1,2)+B(1,2);>>U(2,1)=A(2,1)-B(2,1);>>U(2,2)=A(2,2)-B(2,2);>>UU=56-2055矩陣的操作(續(xù))3、矩陣塊的操作利用冒號表達式對矩陣進行拆分、提取子矩陣是矩陣操作的重要方面。提取的規(guī)則是①A(:,j)表示取矩陣A的第j列的全部元素;②A(i,:)表示取矩陣A的第i行的全部元素;③A(i,j)表示取矩陣A的第i行第j列交叉位置的元素;④A(i:i+m,:)表示取矩陣A的第i~i+m行的全部元素;⑤A(:,k:k+n)表示取矩陣A的第k~k+n列的全部元素;⑥A(i:i+m,k:k+n)表示取矩陣A的第i~i+m行內并在第k~k+n列中的全部元素。56矩陣的操作(續(xù))例12.拆分矩陣的例子。>>A=[11111;12345;1361015]A=11111123451361015>>A(2,3)ans=3>>A(3,5)=-1A=111111234513610-157矩陣的操作(續(xù))>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20]A=1234567891011121314151617181920>>A(1,:)ans=1234558矩陣的操作(續(xù))>>A(:,2:4)ans=234789121314171819>>A(2:3,4:5)ans=9101415>>A(2:3,1:3:5)ans=681011131559矩陣的操作(續(xù))例13.組合矩陣的例子。>>A=[1,2;3,4]A=1234>>B=[2,3;4,5]B=2345>>[A,B]ans=1223344560矩陣的操作(續(xù))>>[A;B]ans=12342345>>[A;6,7]ans=12346761矩陣的操作(續(xù))①冒號表達式是MATLAB中非常重要的、應用非常廣泛、也非常靈活的工具。②利用冒號表達式比利用循環(huán)語句賦值解決同一問題要快得多,所以實際編程時一般應當盡量采用冒號表達式而不是用循環(huán)。62矩陣的操作(續(xù))例14.>>A=[1234567891011121314151617181920]A=1234567891011121314151617181920>>A(end,:)%取A的最后一行
ans=161718192063矩陣的操作(續(xù))>>A([1,4],3:end)%取A的第1,4兩行中第3列到最后一列。ans=345181920>>A([1,4],:)%取A的第1,4兩行。ans=123451617181920。指出:end用來表示矩陣某一維末尾元素。64矩陣的操作(續(xù))例15.>>c=[3.2,4.5;2.4,4.7];>>d=[c,ones(size(c));zeros(size(c)),eye(size(c))]d=3.20004.50001.00001.00002.40004.70001.00001.0000001.000000001.0000。指出:實際上,例15是分塊輸入矩陣的例子,是將矩陣分4塊輸入的。注意分塊的意義。65四、數(shù)據(jù)的輸出格式format命令的格式為:format格式符格式符決定數(shù)據(jù)輸出格式,常見格式及其含義有:short:輸出小數(shù)點后4位,最多不超過7位有效數(shù)字。long:15位有效數(shù)字形式輸出。shorte:5位有效數(shù)字的科學記數(shù)形式輸出。longe:15位有效數(shù)字的科學記數(shù)形式輸出。rat:近似有理數(shù)形式輸出。
66數(shù)據(jù)輸出格式(續(xù))指出:①format命令只影響數(shù)據(jù)的輸出格式,而不影響數(shù)據(jù)的存儲和計算。②如果輸出的矩陣的每個元素都是整數(shù),則MATLAB就用整數(shù)格式顯示結果。只要矩陣中有一個元素不是整數(shù),MATLAB就按當前的輸出格式顯示。③默認的輸出格式是short。67數(shù)據(jù)輸出格式(續(xù))④注意rat格式。如果在進行運算前執(zhí)行formatrat命令,則可以用分數(shù)形式顯示運算結果,這樣便于核對手算的結果的正確性。例如,>>1/3ans=0.3333>>formatrat>>1/3ans=1/3>>⑤在改變了輸出格式后,為了以后還按默認的格式輸出,應當再執(zhí)行formatshort命令。68數(shù)據(jù)輸出格式(續(xù))⑥即使在默認格式下,0也僅僅是輸出0。教材中輸出0.0000是不正確的。⑦顯示格式是非常重要的,要熟悉幾種重要的格式。69二維圖形的繪制一、二維圖形的繪制1、數(shù)據(jù)繪圖命令-plot①plot(y)當y為向量時,以y的分量為縱坐標,以元素序號為橫坐標,用直線依次連接數(shù)據(jù)點,繪制曲線。若y為實數(shù)矩陣,按列繪制每一列所對應的曲線,圖中曲線數(shù)等于矩陣的列數(shù)。②plot(x,y)若y和x為同維向量,以x為橫坐標,以y為縱坐標繪制連線圖。若x是向量,y是行數(shù)或列數(shù)與x的長度相等的矩陣,則繪制多條不同色彩的連線圖,x被作為這些曲線的共同坐標。若x和y是同型的矩陣,則以x和y的對應列元素為橫縱坐標分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。③plot(x,y1,x,y2,…)以公共的x元素為橫坐標,以y1,y2,y3,…元素為縱坐標值繪制多條曲線。70二維圖形的繪制(續(xù))例1.以向量y=(1,2,5,4.5,3,6,1)的各個分量為縱坐標,分量序號為橫坐標繪制順序連接線。解:輸入命令>>y=[1254.5361];>>plot(y)71二維圖形的繪制(續(xù))72二維圖形(續(xù))例2.畫出一條正弦曲線和一條余弦曲線。
>>x=0:pi/10:2*pi;%構造向量
>>y1=sin(x);%構造對應的y1坐標
>>y2=cos(x);%構造對應的y2坐標
>>plot(x,y1,x,y2)%畫出一個以x為橫坐標,y1,
y2為縱坐標的圖形
指出:①構造向量采用了所謂的冒號法,格式為向量名=初值:步長:終值%步長為1時可以省略。②plot是針對向量或矩陣的列來繪制曲線的,也就是說,使用plot之前必須首先定義好曲線上每一點的x坐標和y坐標。③在上述的格式中,x和y都可以是表達式。④如果自變量的間隔取得比較大,光滑的曲線就會顯示出折線的本來面貌。73二維圖形(續(xù))742、函數(shù)繪圖命令[1]解析函數(shù)繪圖命令fplot使用格式:fplot(‘fun’,lims,’s’,tol)其中,①用單引號界定的輸入?yún)?shù)fun,是解析函數(shù)字符串表達式、內聯(lián)函數(shù)或m-函數(shù)文件名。fun可以是一個函數(shù),也可以是元素是函數(shù)的向量。②輸入?yún)?shù)lims規(guī)定了繪圖區(qū)間,lims=[a,b,c,d]表示,自變量x和函數(shù)y的取值范圍分別是x∈[a,b],y∈[c,d]。通常c,d被省略。③輸入?yún)?shù)s用于修飾曲線,后面介紹。④輸入?yún)?shù)tol規(guī)定函數(shù)取值的相對誤差,常省略。默認2e-3。⑤fun是函數(shù)向量時,繪出的幾條曲線的取值區(qū)間和線型是相同的。75解析函數(shù)繪圖命令fplot(續(xù))例3.繪制函數(shù)f(x)=cos(tan(πx))的曲線。解:>>fplot('cos(tan(pi*x))',[-0.4,1.4])>>76fplot(續(xù))77解析函數(shù)繪圖命令fplot(續(xù))指出:①輸入該命令的函數(shù)表達式是解析式,式中不用數(shù)組算法符號(與plot命令不同)。②fplot函數(shù)用于繪制已定義函數(shù)在指定的范圍內的圖像,雖然它與plot相似,也是用描點法畫圖,但該函數(shù)可以根據(jù)函數(shù)自身的性質自適應地對函數(shù)進行采樣,能夠自動確定曲線變化率大的區(qū)段并在此區(qū)段進行密集采樣。也就是說,畫圖時x的取值間隔是隨函數(shù)的曲率自動調節(jié)的,曲率大(曲率半徑小)處間隔小,曲率小處間隔大。這種自適應地取值使繪制的曲線光滑、美觀、可以減少取點的數(shù)目的同時更好地反映函數(shù)的變化規(guī)律。78[2]隱函數(shù)繪圖命令-ezplot使用格式:ezplot(‘func’,lims)其中①輸入?yún)?shù)’func’可以是字符表達式,內聯(lián)函數(shù)或m-函數(shù)文件名。②輸入?yún)?shù)func為一元函數(shù)f(x)時,輸出y=f(x)的幾何圖形。這時命令后面可以不用括號和引號。但函數(shù)的第一個符號不得是括號,不能加寫輸入?yún)?shù)lims,默認繪圖范圍是[-2π,2π]。③輸入?yún)?shù)func是二元函數(shù)表達式f(x,y)時,輸出方程f(x,y)=0的幾何圖形,即繪制隱函數(shù)曲線。變量的范圍由輸入?yún)?shù)lims規(guī)定,lims=[a,b,c,d]表示x和y的取值范圍分別是x∈[a,b],y∈[c,d]。省略[c,d]時默認x、y取值區(qū)間相同。79隱函數(shù)繪圖命令-ezplot(續(xù))④輸入?yún)?shù)func是參數(shù)方程時,func寫成’x(t)’,’y(t)’,按參數(shù)方程繪出t∈[a,b]的函數(shù)曲線。⑤輸入?yún)?shù)lims規(guī)定自變量取值范圍,默認范圍是x∈[-2π,2π]。⑥該命令一次只能繪制一條曲線,在繪出函數(shù)圖形的同時自動在圖的上側加注函數(shù)解析式,下側加注自變量名稱,曲線的色型、線型無法控制。80例4.繪制三葉玫瑰線r=sin(3t)(極坐標方程)。解:把極坐標方程r=sin(3t),通過轉換成直角坐標方程:
輸入命令:>>ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi])隱函數(shù)繪圖命令-ezplot(續(xù))81隱函數(shù)繪圖命令-ezplot(續(xù))82二維圖形繪制(續(xù))MATLAB繪制的其它圖像的例子:例5.某次考試學生成績優(yōu)秀的占8%,良好的占20%,中等的占36%,及格的占24%,不及格的占12%。分別用餅圖和條形圖表示。解:>>x=[820362412];>>subplot(221);pie(x,[10001]);>>title('餅圖');>>subplot(222);bar(x,'grpup');>>title('垂直條形圖');>>subplot(223);bar(x,'stack');>>title('累加值為縱坐標的垂直條形圖');>>subplot(224);barh(x,'group');>>title('水平條形圖');83fplot(續(xù))843、繪圖控制命令(1)曲線控制命令
在使用plot等命令繪制曲線時可以指定曲線的顏色、線型和數(shù)據(jù)點圖標?;镜恼{用格式為
plot(x,y,'colorline-stylemarker')
顏色控制符表字符顏色字符顏色b藍色m紫紅色c青色r紅色g綠色w白色k黑色y黃色85繪圖控制(續(xù))線型控制符表線型格式實線(默認)點線點劃線虛線符號-:-.--86繪圖控制(續(xù))數(shù)據(jù)點標記控制符表標記符號數(shù)據(jù)點形式標記符號數(shù)據(jù)點形式.實心圓點>大于號o(字母)空心圓點<小于號x叉號s正方形+加號d菱形*星號h六角星v向下的三角形p五角星^向上的三角形87繪圖控制(續(xù))指出:①顏色、線型、標記三種屬性的符號必須放在同一個字符串內。②屬性的先后順序沒有關系,可以只指定一兩個屬性,也可以全部缺省,但同種屬性不能同時指定兩個。③顏色缺省為藍色。④點、線標識符缺省為實線。⑤屬性間不用間隔。88繪圖控制(續(xù))例6.用紅色、點連線、叉號畫出正弦曲線。
>>x=0:0.2:8;>>y=sin(x);>>plot(x,y,'r:x')89繪圖控制(續(xù))90(2)圖形的標注命令圖形標注函數(shù)函數(shù)意義title(‘…’)給圖形添加標題xlabel(‘…’)標記橫坐標ylabel(‘…’)標記縱坐標text(x,y,’…’)在x,y所定義的位置標注gtext(’…’)該命令提示在鼠標指定位置(光標顯示為“+”標注)axis(xminxmaxyminymax)指定顯示范圍Gridon(/of)添加或取消網(wǎng)格線91圖形的標注(續(xù))例7.給例2的圖形加入網(wǎng)格和標注。
>>x=0:pi/10:2*pi;>>y1=sin(x);>>y2=cos(x);>>plot(x,y1,x,y2)>>gridon%添加網(wǎng)格
>>xlabel(‘x軸’)%橫坐標名
>>ylabel(‘y軸’)%縱坐標名
>>title(‘正弦函數(shù)和余弦函數(shù)曲線’)%標題
>>text(1.5,0.3,’cos(x)’)%指定位置標注
>>gtext(‘sin(x)’)%用鼠標選擇位置標注
>>axis([02*pi-1.21.2])%設置坐標軸的最大最小值92圖形的標注(續(xù))93圖形的標注(續(xù))指出:①標注文字可以使用漢字。②標注也可以適當設定字符屬性增加文本變化,例如
>>title(‘弦函數(shù)曲線’,‘FontName’,’隸書’,’FontSize’,20)94(3)圖形的比較顯示命令
默認的情況下,MATLAB每一次使用plot函數(shù)進行繪圖,都將清除原有的圖形,但有時候我們希望后面繪制的圖形能和前面所繪制的圖形進行比較。此時我們有兩種方法,一是采用holdon(/of)命令,在同一個圖形窗口中繪制新的圖形疊加在原有的圖形上。二是采用subplot(n,m,k)命令,將圖形窗口分割成幾個小窗口,在每個窗口中畫出一個圖形。
①holdon(/of)保持繪圖命令②subplot(n,m,k)將圖形窗口分成n行m列個格子,在第k個格子繪圖,格子按從上到下依行計數(shù)。95圖形的比較顯示(續(xù))例8.在同一個窗口中,使用兩次plot函數(shù)繪制兩條曲線。
>>x=0:0.2:12;>>plot(x,sin(x),’-’)>>holdon>>plot(x,cos(x),’:’)96圖形的比較顯示(續(xù))97圖形的比較顯示(續(xù))例9.把當前窗口分割成四個區(qū)域,繪制四條函數(shù)曲線。
>>x=0:0.05:8;>>y1=2*sin(x);>>y2=2*cos(x);>>y3=sin(2*x);>>y4=cos(2*x);>>subplot(2,2,1);>>plot(x,y1);>>title(‘2sinx’)
98圖形的比較顯示(續(xù))
>>subplot(2,2,2);>>plot(x,y2);>>title(‘2cosx’)>>subplot(2,2,3);>>plot(x,y3);>>title(‘sin2x’)>>subplot(2,2,4);>>plot(x,y4);>>title(‘cos2x’)99圖形的比較顯示(續(xù))100§5MATLAB程序設計第四代編程語言(4GL)
一、MATLAB運算1、關系運算
運算符說明運算符說明<小于<=小于或等于>大于>=大于或等于==等于~=不等于101MATLAB運算(續(xù))
關系運算用來比較兩個同樣大小的矩陣,或用來比較一個矩陣和一個標量。比較結果是一個0-1矩陣,當相應元素經(jīng)關系運算結果為真時,對應位置上生成1,否則為0。例1.已知矩陣A=[12579],找出大于4的元素的位置。
>>A=[13579];>>b=A>4
則輸出的結果為
b=00111
注意=和==的區(qū)別。==用于比較兩個變量,當它們相等時返回1,當它們不相等時返回0;而=用于將運算的結果賦值給一個變量。102MATLAB運算(續(xù))2、邏輯運算①對于數(shù)值矩陣,當元素為0時,邏輯上為假;當元素為非0時邏輯上為真。一般地,當表達式邏輯上為假時,賦值0;當表達式邏輯上為真時,賦值1。②注意符號輸入?!皛”使用鍵盤左上角的上位字符,而“|”
使用“Backspace”下面鍵的上位字符。名稱運算符說明與運算&兩個元素都是真時結果為真,否則為假或運算|兩個元素同為假時結果為假,否則為真非運算~元素為假結果為真,元素為真結果為假103MATLAB運算(續(xù))例2.建立矩陣A和B,計算A&B、A∣B、~B。
>>A=[1-35;010];>>B=[1500;-30.512];>>C=A&B>>D=A∣B>>~B
輸出結果為
C=110010D=111111ans=001000104§6MATLAB實際應用1、MATLAB編程技巧2、MATLAB圖形用戶界面3、Note-book105一、MATLAB編程技巧1、及時清空工作空間
在每一個程序的開頭加上clear命令,以清空內存中的自定義變量。2、注釋
為了增強程序的可讀性,程序中要注意編寫注釋。
3、優(yōu)化程序[1]直接使用矩陣與向量,避免使用循環(huán)。[2]不顯示不必要的中間結果。[3]對大型矩陣預先定義維數(shù)。[4]優(yōu)先使用內部函數(shù)。[5]充分利用其他高級語言。[6]設置斷點調試。[7]測試程序執(zhí)行時間
tic用于啟動秒表,toc用于停止秒表。
tic和toc返回的是變量elapsed_time。106MATLAB編程技巧例1.建立一個100×100的魔方矩陣,并測定運行時間。解:>>tic%開始計時>>A=magic(100);%運行程序,magic是魔方矩陣函數(shù)。>>toc%結束計時,顯示所耗時間。在命令窗口觀察運行結果為。ela
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- TSHJMRH 0063-2024 在用潤滑油顆粒污染度的測定 光阻法
- 家長會安全發(fā)言稿
- 2025年度股份轉讓過程中稅務籌劃及優(yōu)惠政策合同
- 二零二五年度關于協(xié)議作廢糾紛的調解與賠償協(xié)議
- 二零二五年度夫妻共同維護家庭和諧與子女幸福感協(xié)議書
- 二零二五酒吧藝人廣告代言及宣傳推廣合同
- 二零二五年度高級別家庭收養(yǎng)協(xié)議書匯編與實施手冊
- 二零二五年度企業(yè)股東間資金支持及借款合同
- 2025年度跨境電商合作介紹費協(xié)議范本
- 2025年度木門智能化升級改造工程合同
- 危險化學品經(jīng)營單位主要負責人安全生產(chǎn)培訓大綱及考核標準
- 文創(chuàng)產(chǎn)品設計-課件
- 風電場葉片無人機巡檢作業(yè)技術導則
- 工業(yè)廢鹽及副產(chǎn)鹽深度資源化利用項目可行性研究報告
- 制度機制風險點及防控措施3篇
- 管道鈍化方案
- “小小科學家”廣東省少年兒童科學教育體驗活動+生物試題4
- 小兒推拿法操作評分標準
- 《研學旅行課程設計》課件-了解研學旅行概念
- MOOC 財務報表分析-華中科技大學 中國大學慕課答案
- 2024屆南京市建鄴區(qū)中考聯(lián)考物理試卷含解析
評論
0/150
提交評論