版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1本章內(nèi)容
MATLAB的基本數(shù)學(xué)函數(shù)和常用命令的使用;
MATLAB的基本輸入/輸出函數(shù)及其應(yīng)用;
MATLAB的外部命令調(diào)用方法;
MATLAB的基本數(shù)值運(yùn)算方法;
MATLAB的基本符號(hào)運(yùn)算方法。第2章MATLAB基本操作22.1MATLAB語言的結(jié)構(gòu)其中等號(hào)右邊的表達(dá)式可由操作符或其它字符、函數(shù)和變量名組成,它可以是MATLAB允許的數(shù)學(xué)或矩陣運(yùn)算,也可以包含MATLAB下的函數(shù)調(diào)用;等號(hào)左邊的變量名為MATLAB語句右邊表達(dá)式的返回值語句所賦值的變量的名字。MATLAB語句的一般形式為
變量名=表達(dá)式3
在調(diào)用函數(shù)時(shí),MATLAB允許一次返回多個(gè)結(jié)果,這時(shí)等號(hào)左邊的變量名需用[]括起來,且各個(gè)變量名之間用逗號(hào)分隔開。
MATLAB語句結(jié)構(gòu)形式中的等號(hào)和左邊的變量名也可以缺省,此時(shí)返回值自動(dòng)賦給變量ans。4
在MATLAB中變量名必須以字母開頭,之后可以是任意字母、數(shù)字或者下劃線(不能超過19個(gè)字符),但變量中不能含有標(biāo)點(diǎn)符號(hào)。變量名區(qū)分字母的大小寫,同一名字的大寫與小寫被視為兩個(gè)不同的變量。一般說來,在MATLAB下變量名可以為任意字符串,但MATLAB保留了一些特殊的字符串如表2-1所示。1.MATLAB的變量名5表2-1MATLAB中的特殊變量
特殊變量取值特殊變量取值ans默認(rèn)變量名nargin函數(shù)的輸入變量數(shù)目pi圓周率(
=3.1415926…)nargout函數(shù)的輸出變量數(shù)目i或j基本虛數(shù)單位realmin系統(tǒng)所能表示的最小數(shù)值inf或Inf無限大,如1/0realmax系統(tǒng)所能表示的最大數(shù)值nan或NaN不定量,如0/0,
/
,0*
lasterr存放最新的錯(cuò)誤信息eps浮點(diǎn)相對(duì)精度lastwarn存放最新的警告信息62.MATLAB的算術(shù)運(yùn)算符
MATLAB中使用的算術(shù)運(yùn)算符如表2-2所示。表2-1MATLAB中的算術(shù)運(yùn)算符算術(shù)運(yùn)算符意義算術(shù)運(yùn)算符意義+加\左除-減∕右除*乘^冪7
對(duì)于矩陣來說,這里左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對(duì)于標(biāo)量,兩種除法運(yùn)算的結(jié)果相同,如1/4和4\1有相同的值0.25。
常用的十進(jìn)制符號(hào)如小數(shù)點(diǎn)、負(fù)號(hào)等,在MATLAB中也可以同樣使用,表示10的冪次要用符號(hào)e或E,如:3、-99、0.0001、1.6e-20、6.2e23。
83.MATLAB的基本數(shù)學(xué)函數(shù)
為了方便用戶,MATLAB提供了豐富的庫函數(shù),庫函數(shù)是根據(jù)系統(tǒng)已經(jīng)編制好了的,提供用戶直接使用的函數(shù)。其中MATLAB中常用的基本數(shù)學(xué)函數(shù),如表2-3所示。9函數(shù)名含義函數(shù)名含義sin()正弦sqrt()平方根cos()余弦real()實(shí)部tan()正切imag()虛部asin()反正弦conj()復(fù)數(shù)共軛acos()反余弦round()4舍5入到整數(shù)atan()反正切fix()舍入到最接近0的整數(shù)atan2()第四象反正切floor()舍入到最接近-∝的整數(shù)sonh()雙曲正弦ceil()舍入到最接近+∝的整數(shù)cosh()雙曲余弦sign()符號(hào)函數(shù)tanh()雙曲正切rem()留數(shù)exp()自然指數(shù)bessel()貝塞爾函數(shù)log()自然對(duì)數(shù)gamma()伽嗎函數(shù)logl0()以10為底的對(duì)數(shù)rat()有理逼近隨機(jī)數(shù)abs()絕對(duì)值或模
rand()
表2-3MATLAB的基本函數(shù)
10
除了基本函數(shù)外,不同版本的MATLAB還增加了具有不同功能的庫函數(shù),也稱工具箱或模塊集。例如電力系統(tǒng)工具箱、控制系統(tǒng)工具箱和信號(hào)處理工具箱等等等等。對(duì)于各種函數(shù)的功能和調(diào)用方法可使用MATLAB的聯(lián)機(jī)幫肋h(yuǎn)elp來查詢,例如:
>>helpsin%得到正弦函數(shù)的使用信息;
>>help[%顯示如何使用方括號(hào)。112.1MATLAB的窗口命令MATLAB命令窗口就是MATLAB語言的工作空間,因?yàn)镸ATLAB的各種功能的執(zhí)行必須在此窗口下才能實(shí)現(xiàn)。所謂窗口命令,就是在上述命令窗口中輸入的MATLAB語句,并直接執(zhí)行它們完成相應(yīng)的運(yùn)算等。12MATLAB命令語句能即時(shí)執(zhí)行,它不是輸入完全部MATLAB命令語句經(jīng)過編譯、連接形成可執(zhí)行文件后才開始執(zhí)行,而是每輸入完一條命令,MATLAB就立即對(duì)其處理,并得出中間結(jié)果,完成了MATLAB所有命令語句的輸入,也就完成了它的執(zhí)行,直接便可得到最終結(jié)果。從這一點(diǎn)來說,MATLAB清晰地體現(xiàn)了類似“演算紙”的功能。2.2.1窗口命令的執(zhí)行及回調(diào)
1.窗口命令的執(zhí)行13例如>>a=5;>>b=6;>>c=a*b,>>d=c+2其中第3,4條命令的執(zhí)行結(jié)果分別顯示如下:
c=30d=3214
注意,以上各命令行中的“>>”標(biāo)志為MATLAB的命令提示符,其后的內(nèi)容才是用戶輸入的命令語句。每行命令輸入完后,只有當(dāng)用回車鍵進(jìn)行確定后,命令才會(huì)被執(zhí)行。
MATLAB語句既可由分號(hào)結(jié)束,也可由逗號(hào)或換行號(hào)結(jié)束,但它們的含義是不同的。如果用分號(hào)“;”結(jié)束,則說明除了這一條命令外還有下一條命令等待輸入,MATLAB這時(shí)將不立即顯示運(yùn)行的中間結(jié)果,而等待下一條命令的輸入,如以上前兩條命令;如果以逗號(hào)“,”或回車結(jié)束,則將把左邊返回的內(nèi)容全部顯示出來,如以上后兩條命令。
15
當(dāng)然在任何時(shí)候也可輸入相應(yīng)的變量名來查看其內(nèi)容。如>>aa=5
在MATLAB中,幾條語句也可以出現(xiàn)在同一行中,只要用分號(hào)或逗號(hào)將它們分割。例如>>a=5;b=6;c=a*b,d=c+2這時(shí)可得與上面相同的結(jié)果。16MATLAB工作空間中的變量在退出MATLAB時(shí)會(huì)丟失,如果在退出MATLAB前想將工作空間中的變量保存到文件中,則可以調(diào)用save命令來完成,該命令的調(diào)用格式為>>save文件名變量列表其它選項(xiàng)
注意這一命令中不能使用逗號(hào),不同的元素之間只能用空格來分隔。2.2.2窗口變量的處理
1.變量的保存17例如,想把工作空間中的a,b,c變量存到mydat.mat文件中去,則可用下面的命令來實(shí)現(xiàn)。>>savemydatabc
這里將自動(dòng)地使用文件擴(kuò)展名mat。如果想將整個(gè)工作空間中所有的變量全部存入該文件,則應(yīng)采用下面的命令。>>savemydat18
當(dāng)然這里的mydat也可省略,這時(shí)將工作空間中的所有變量自動(dòng)地存入到文件matlab.mat中了。應(yīng)該指出的是,這樣存儲(chǔ)的文件均是按照二進(jìn)制的形式進(jìn)行的,所以得出的文件往往是不可讀的,如果想按照ASCII碼的格式來存儲(chǔ)數(shù)據(jù),則可以在命令后面加上一個(gè)控制參數(shù)-ascii,該選項(xiàng)將變量以單精度的ASCII碼形式存入文件中去,如果想獲得高精度的數(shù)據(jù)。則可使用控制參數(shù):-ascii-double。19MATLAB提供的load命令可以從文件中把變量調(diào)出并重新裝入到MATLAB的工作空間中去,該函數(shù)的調(diào)用格式與save命令同。當(dāng)然工作空間中變量的保存和調(diào)出也可利用菜單項(xiàng)中的File|SaveWorkspaceAs…和File|Open命令來完成。2.變量的調(diào)取20
如果想查看目前的工作空間中都有哪些變量名,則可以使用who命令來完成。例如當(dāng)MATLAB的工作空間中有a,b,c,d四個(gè)變量名時(shí),使用who命令將得出如下的結(jié)果。>>whoyourvariableare:abcd
想進(jìn)一步了解這些變量的具體細(xì)節(jié),則可以使用whos命令來查看。3.變量的查看21
了解了當(dāng)前工作空間中的現(xiàn)有變量名之后,則可以使用clear命令來刪除其中一些不再使用的變量名,這樣可使得整個(gè)工作空間更簡潔,節(jié)省一部分內(nèi)存,例如想刪除工作空間中的a,b兩個(gè)變量,則可以使用下面的命令>>clearab
如果想刪除整個(gè)工作空間中所有的變量,則可以使用以下命令>>clear4.變量的刪除22
在MATLAB操作界面中,用戶可以根據(jù)自己的需要,對(duì)窗口命令的字體風(fēng)格、大小和顏色等進(jìn)行自定義的設(shè)置。利用MATLAB操作界面中的菜單命令File
Preferences命令可打開Preferences參數(shù)設(shè)置窗口,用戶可以在此設(shè)置字體格式等,如圖2-1所示。2.2.3窗口命令的屬性2324MATLAB可以使用format命令來改變顯示格式,其調(diào)用格式為format控制參數(shù)其中控制參數(shù)決定顯示格式,控制參數(shù)如表2-4表示。除format命令外,還可由MATLAB命令窗口的Options|NumericFormat菜單項(xiàng)來設(shè)置顯示形式。2.2.4數(shù)值結(jié)果顯示格式25控制參數(shù)意義例100/3short5位有效數(shù)字,同默認(rèn)顯示33.3333long長格式,15位有效數(shù)字33.33333333333334shorte短格式,5位有效數(shù)字的浮點(diǎn)數(shù)3.3333e+001longe長格式,15位有效數(shù)字的浮點(diǎn)數(shù)3.333333333333334e+001hex十六進(jìn)制格式4040aaaaaaaaaaabbank2個(gè)十進(jìn)制位33.33+正、負(fù)或零+rat有理格式100/3表2-4format命令的控制參數(shù)
262.2.5基本輸入與輸出函數(shù)
除上面提到的用于機(jī)器間交換數(shù)據(jù)的命令語句save和load外,MATLAB還允許計(jì)算機(jī)和用戶之間進(jìn)行數(shù)據(jù)交換,允許對(duì)文件進(jìn)行讀寫操作。27
如果用戶想在計(jì)算的過程中給計(jì)算機(jī)輸入一個(gè)參數(shù),則可以使用input()函數(shù)來進(jìn)行,該函數(shù)的調(diào)用格式為變量名=input(提示信息,選項(xiàng))這里提示信息可以為一個(gè)字符串顯示,它用來提示用戶輸入什么樣的數(shù)據(jù),input()函數(shù)的返回值賦給等式左邊的變量名。1.輸入函數(shù)28
例如,用戶想輸入x的值,則可以采用下面的命令來完成>>x=input(‘Entermatrixx=>’);
執(zhí)行該命令時(shí)首先給出EntermatrixA=>提示信息,然后等待用戶從鍵盤按MATLAB格式輸入值,并把此值賦給x。如果在input()函數(shù)調(diào)用時(shí)采用了‘s’選項(xiàng),則允許用戶輸入一個(gè)字符串,此時(shí)需用單引號(hào)將所輸字符串括住。29MATLAB提供的命令窗口輸出函數(shù)主要有disp()函數(shù),其調(diào)用格式為
disp(變量名)其中變量名既可以為字符串,也可以為變量矩陣。例如>>s=‘HelloWorld’,s=HelloWorld>>disp(s)HelloWorld2.輸出函數(shù)30MATLAB提供了較實(shí)用的字符串處理及轉(zhuǎn)換的函數(shù),例如int2str()函數(shù)就可以方便在將一個(gè)整形數(shù)據(jù)轉(zhuǎn)換成字符串形式,該函數(shù)的調(diào)用格式為cstr=int2str(n)其中n為一個(gè)整數(shù),而該函數(shù)將返回一個(gè)相關(guān)的字符串cstr。例如
num的數(shù)值為num=15,而在輸出中還想給出其它說明性附加信息,則可利用下面的語句>>disp([‘Thevalueofnumis’,int2str(num),‘!ok’])這樣可得
Thevalueofnumis15!ok3.字符串轉(zhuǎn)換函數(shù)31
與int2str()函數(shù)的功能及調(diào)用方式相似,MATLAB還提供了num2str()函數(shù),可以將給出的實(shí)型數(shù)據(jù)轉(zhuǎn)換成字符串的表達(dá)式,最終也可以將該字符串輸出出來。例如給繪制的圖形賦以數(shù)字的標(biāo)題時(shí)可采用下面的命令>>c=(70-32)/1.8;>>title([‘Roomtemperatureis’,num2str(c),‘degreesC’])則會(huì)在當(dāng)前圖形上加上題頭標(biāo)注
Roomtemperatureis21.1111degreesC322.2.5外部程序的調(diào)用MATLAB允許在其命令窗口中調(diào)用可執(zhí)行文件(.exe),其調(diào)用方法是在MATLAB提示符下鍵入驚嘆號(hào)!后面直接跟該可執(zhí)行文件即可。
MATLAB也允許采用這樣的方式來直接使用DOS命令,如磁盤復(fù)制命令copy可以由!copy來直接使用,而文件列表命令dir可以由!dir來調(diào)用。事實(shí)上,為了使用戶提供更大的方便,MATLAB已經(jīng)把一些常用的DOS命令做成了相應(yīng)的MATLAB命令,表2-5列出了MATLAB中提供的一些文件管理命令。33命令注釋what列出當(dāng)前目錄下所有的m文件dir列當(dāng)前目錄下所有的文件1s與dir命令相同typemyfile在命令窗口中顯示文件myfile.m的內(nèi)容deletemyfile刪除文件myfile.mcdpath進(jìn)入子目錄pathwhichmyfile顯示文件myfile.m所在的路徑表2-5文件管理命令
342.3MATLAB的數(shù)值運(yùn)算MATLAB具有強(qiáng)大的數(shù)值能力,它不僅能對(duì)矩陣和向量進(jìn)行相應(yīng)的運(yùn)算,而且也可進(jìn)行關(guān)系運(yùn)算、邏輯運(yùn)算和多項(xiàng)式運(yùn)算等問題。352.3.1矩陣運(yùn)算MATLAB的基本數(shù)據(jù)單元是不需要指定維數(shù)的復(fù)數(shù)矩陣,它提供了各種矩陣的運(yùn)算與操作,因它既可以對(duì)矩陣整體地進(jìn)行處理,也可以對(duì)矩陣的某個(gè)或某些元素進(jìn)行單獨(dú)地處理,所以在MATLAB環(huán)境下矩陣的操作同數(shù)的操作一樣簡單。361.矩陣的實(shí)現(xiàn)
在MATLAB語言中不必描述矩陣的維數(shù)和類型,它們是由輸入的格式和內(nèi)容來確定的,例如當(dāng)
時(shí),把A自動(dòng)當(dāng)作一個(gè)2×2的矩陣;A=[12]時(shí),把A當(dāng)作一個(gè)2維向量
時(shí),把A自動(dòng)當(dāng)作一個(gè)2維列向量;A=5時(shí),把A當(dāng)作一個(gè)標(biāo)量;A=1+2i時(shí),把A當(dāng)作一個(gè)復(fù)數(shù)。371)矩陣的賦值矩陣可以用以下幾種方式進(jìn)行賦值*直接列出元素的形式;*通過語句和函數(shù)產(chǎn)生;*建立在文件中;*從外部的數(shù)據(jù)文件中裝入。38(1)簡單矩陣的輸入對(duì)于比較小的簡單矩陣可以使用直接排列的形式輸入,把矩陣的元素直接排列到方括號(hào)中,每行內(nèi)的元素間用空格或逗號(hào)分開,行與行的內(nèi)容用分號(hào)隔開。在MATLAB下的輸入方式為
>>A=[1,2,3;4,5,6;7,8,9]或>>A=[123;456;789]都將得相同的結(jié)果39
對(duì)于比較大的矩陣,可以用回車鍵代替分號(hào),對(duì)每一行的內(nèi)容分行輸入,也可利用續(xù)行符號(hào)(…),把一行的內(nèi)容分兩行來輸入。如前面的矩陣還可以等價(jià)地由下面兩種方式來輸入。
>>A=[123;456789]或>>A=[123;45…6;789]
輸入后A矩陣將一直保存在工作空間中,除非被替代和清除,在MATLAB的命令窗口中可隨時(shí)查看其內(nèi)容。40(2)利用語句或函數(shù)產(chǎn)生矩陣在MATLAB中,矩陣也可利用下例語句來產(chǎn)生s1:s2:s3其中,s1為起始值;s3為終止值;s2為步矩。使用這樣的命令就可以產(chǎn)生一個(gè)由s1開始,以步距s2自增,并終止于s3的行向量,如41>>y=[0:pi/4:pi;0:10/4:10]y=00.78541.57082.35623.141602.50005.00007.500010.0000如果S2省略,則可以認(rèn)為自增步距為1,例如>>x=1:5結(jié)果顯示:
x=1234542
利用size()函數(shù)可測取一個(gè)矩陣的維數(shù),該函數(shù)的調(diào)用格式為[n,m]=size(A)其中A為要測試的矩陣名,而返回的兩個(gè)參數(shù)n和m分別為A矩陣的行數(shù)和列數(shù)。當(dāng)要測試的變量是一個(gè)向量時(shí),當(dāng)然仍可由size()函數(shù)來得出其大小,更簡潔地,用戶可以使用length()函數(shù)來求出,該函數(shù)的調(diào)用格式為n=length(x)其中x為要測試的向量名,而返回的n為向量x的元素個(gè)數(shù)。43
如果對(duì)一個(gè)矩陣A用length(A)函數(shù)測試,則返回該矩陣行列的最大值,即該函數(shù)等效于max(size(A))。442)矩陣的元素
MATLAB的矩陣元素可用任何表達(dá)式來描述,它既可以是實(shí)數(shù),也可以是復(fù)數(shù),例如>>B=[-1/31.3;sqrt(3)(1+2+3)*i]
B=
-0.3333+0.0000i1.3000+0.0000i1.7321+0.0000i0.0000+6.0000iMATLAB允許把矩陣作為元素來建立新的矩陣,例如,利用A矩陣通過下面的語句>>A=[123;456;789];C=[A;[101112]]45MATLAB還允許對(duì)一個(gè)矩陣的單個(gè)元素進(jìn)行賦值和操作,例如如果想將A矩陣的第2行第3列的元素賦為100,則可通過下面的語句來完成>>A(2,3)=100
A=1 23451007 89
這時(shí)將只改變此元素的值,而不影響其它元素的值。46
如果給出的行數(shù)或列數(shù)大于原來矩陣的范圍,則MATLAB將自動(dòng)擴(kuò)展原來的矩陣,并將擴(kuò)展后未賦值的矩陣元素置為0。例如如果想把矩陣A的第4行第5列元素的值定義為8,就可以通過下面語句來完成。>>A(4,5)=8A=1230045100007890000008473)特殊矩陣的實(shí)現(xiàn)在MATLAB中特殊矩陣可以利用函數(shù)來建立。(1)單位矩陣函數(shù)eye()基本格式
A=eye(n)
%產(chǎn)生一個(gè)n階的單位矩陣A或A=eye(size(B))
%產(chǎn)生與B矩陣同階的單位矩陣A48(2)零矩陣函數(shù)zeros()(3)1矩陣函數(shù)ones()(4)隨機(jī)元素矩陣函數(shù)rand()(5)對(duì)角矩陣函數(shù)diag()(6)伴隨矩陣函數(shù)compan()(7)上三角矩陣函數(shù)triu()和下三角矩陣函數(shù)tril()492.矩陣的基本運(yùn)算
矩陣運(yùn)算是MATLAB的基礎(chǔ),MATLAB的矩陣運(yùn)算功能十分強(qiáng)大,并且運(yùn)算的形式和一般的數(shù)學(xué)表示十分相似。1)矩陣的轉(zhuǎn)置矩陣轉(zhuǎn)置的運(yùn)算符為“'”。例如>>A=[123;456];B=A'
142536502)矩陣的加和減
矩陣的加減法的運(yùn)算符為“+”和“-”。矩陣只有同階方可進(jìn)行加減運(yùn)算,標(biāo)量可以和矩陣進(jìn)行加減運(yùn)算但應(yīng)對(duì)矩陣的每個(gè)元素施加運(yùn)算。例如>>A=[123;456];B=A+1B=234567513)
矩陣的乘法矩陣的乘法運(yùn)算符為“*”。當(dāng)兩個(gè)矩陣中前一矩陣的列數(shù)和后一矩陣的行數(shù)相同時(shí),可以進(jìn)行乘法進(jìn)行運(yùn)算,這與數(shù)學(xué)上的形式是一致的。例>>C=A*B;在MATLAB中還可進(jìn)行矩陣和標(biāo)量相乘,其結(jié)果為標(biāo)量與矩陣中的每個(gè)元素分別相乘。524)矩陣的除法
矩陣的除法有兩種運(yùn)算符“\”和“/”,分別表示左除和右除。一般地講,x=A\B是A*x=B的解,x=B/A是x*A=B的解,通常A\B≠B/A,而A\B=inv(A)*B,B/A=B*inv(A)。535)矩陣的乘方
矩陣的乘方運(yùn)算符為“^”。一個(gè)方陣的乘方運(yùn)算可以用A^P來表示。P為正整數(shù),則A的P次冪即為A矩陣自乘P次。如果P為負(fù)整數(shù),則可以將A自乘P次,然后對(duì)結(jié)果進(jìn)行求逆運(yùn)算,就可得出該乘方結(jié)果。如果P是一個(gè)分?jǐn)?shù),例如P=m\n,其中n和m均為整數(shù),則首先應(yīng)該將A矩陣自乘n次,然后對(duì)結(jié)果再開m次方。546)矩陣的翻轉(zhuǎn)MATLAB還提供了一些矩陣翻轉(zhuǎn)處理的特殊命令,對(duì)n×m維矩陣A如B=fliplr(A)%命令將矩陣A進(jìn)行左右翻轉(zhuǎn)再賦給B,即bij=ai,m+1-j,
C=flipud(A)%命令將矩陣A進(jìn)行上下翻轉(zhuǎn)再賦給C,即cij=an+1-i,j,
D=rot90(A)%命令將矩陣A進(jìn)行旋轉(zhuǎn)90度后賦給D,即dij=aj,m+1-I。557)矩陣的超越函數(shù)MATLAB中exp(),sqrt(),sin(),cos()等基本函數(shù)命令可以直接使用在矩陣上,這種運(yùn)算只定義在矩陣的單個(gè)元素上,即分別對(duì)矩陣的每個(gè)元素進(jìn)行運(yùn)算。超越數(shù)學(xué)函數(shù),可以在函數(shù)后加上m而成為矩陣的超越函數(shù),例如expm(A),sqrtm(A),logm(A)分別為矩陣指數(shù)、矩陣開方和矩陣對(duì)數(shù)。矩陣的超越函數(shù)要求運(yùn)算的矩陣必須為方陣。562.3.2
MATLAB的向量運(yùn)算
雖然向量和矩陣在形式上有很多的一致性,但在MATLAB中它們實(shí)際上遵循著不同的運(yùn)算規(guī)則。MATLAB向量運(yùn)算符由矩陣運(yùn)算符前面加一點(diǎn)“.”來表示,如“.*”、“./”和“.^”等。 在MATLAB中,兩個(gè)維數(shù)相同的矩陣也可以采用向量運(yùn)算符,但與采用以上矩陣運(yùn)算符的結(jié)果是不一樣的,它實(shí)與向量運(yùn)算結(jié)果一致,均為對(duì)應(yīng)元素之間的運(yùn)算。實(shí)際上向量就是矩陣的一種特殊形式,即僅有一行或一列元素的矩陣,因此MATLAB中的向量運(yùn)算又被稱為矩陣元素運(yùn)算。571.向量的加減向量的加、減運(yùn)算與矩陣的運(yùn)算相同,所以“+”和“-”既可被向量接收又可被矩陣接收。582.向量的乘法
向量乘法的操作符為“.*”。如果x,y兩向量具有相同的維數(shù),則x.*y表示x和y單個(gè)對(duì)應(yīng)元素之間的對(duì)應(yīng)相乘。例如>>x=[123];y=[456];z=x.*yz=41018
可見向量的輸入和輸出與矩陣具有相同的格式,但它們的運(yùn)算規(guī)則不同,例如,如果x是一個(gè)向量,則求取函數(shù)x平方時(shí)不能直接寫成x*x,而必須寫成x.*x,否則將給出錯(cuò)誤信息。59
但是對(duì)于矩陣可以使用向量運(yùn)算符號(hào),這時(shí)實(shí)際上就相當(dāng)于把矩陣看成了向量進(jìn)行對(duì)應(yīng)元素間的運(yùn)算。例如對(duì)于兩個(gè)維數(shù)相同的A,B矩陣,C=A.*B表示A和B矩陣的相應(yīng)元素之間直接進(jìn)行乘法運(yùn)算,然后將結(jié)果賦給C矩陣,把這種運(yùn)算稱為矩陣的點(diǎn)積運(yùn)算,兩個(gè)矩陣之間的點(diǎn)積是它們對(duì)應(yīng)元素的直接運(yùn)算,它與矩陣的乘法是不同的。例如>>A=[123;456;789];>>B=[234;567;890];C=A.*B結(jié)果顯示C=261220304256720
603.向量的除法
向量除法的操作符為“./”或“.\”。它們的運(yùn)算結(jié)果一樣。例如對(duì)前面給出的x和y向量>>z=y./xz=4.00002.50002.0000
對(duì)于向量x.\y和y./x一樣,將得到相同的結(jié)果,這與矩陣的左、右除是不一樣的,因向量的運(yùn)算是它們對(duì)應(yīng)元素間的運(yùn)算。對(duì)于矩陣也可使用向量的除法操作符,這時(shí)就相當(dāng)于把矩陣看成向量進(jìn)行對(duì)應(yīng)元素間的除法運(yùn)算。
614.向量的乘方向量乘方的運(yùn)算符為“.^”。向量的乘方是對(duì)應(yīng)元素的乘方,在這種底與指數(shù)均為向量的情況下,要求它們的維數(shù)必須相同。例如>>x=[123];>>y=[456];>>z=x.^yz=132729
它相當(dāng)于z=[123]^[456]=[142536]622.3.3關(guān)系和邏輯運(yùn)算1.關(guān)系運(yùn)算MATLAB常用的關(guān)系操作符見表2-6表示。表2-6關(guān)系運(yùn)算符
關(guān)系操作符意義關(guān)系操作符意義<小于>=大于等于<=小于等于==等于>大于~=不等于63
函數(shù)find()在關(guān)系運(yùn)算中很有用,它可以在矩陣中找出一些滿足一定關(guān)系的數(shù)據(jù)元素。例如
>>A=1:9;B=A>4>>C=A(A>4)C=56789或>>C=find(A>4)
C
=56789642.邏輯運(yùn)算MATLAB的邏輯操作符有&(與)、|(或)和~(非)。它們通常用于元素或0-1矩陣的邏輯運(yùn)算。與和或運(yùn)算符可比較兩個(gè)標(biāo)量或兩個(gè)同階矩陣,對(duì)于矩陣,邏輯運(yùn)算符是作用于矩陣中的元素。邏輯運(yùn)算結(jié)果信息也用“0”和“1”表示,邏輯操作符認(rèn)定任何非零元素都表示為真。給出1為真,0為假。65
非是一元操作符,當(dāng)A非零時(shí),~A返回的信息為0,當(dāng)A為零時(shí),~A返回信息為1。因而就有:P|(~P)返回值為1,P&(~P)返回值為0。例>>A=1:9;C=~(A>4)C=111100000>>C=(A>4)&(A<7)
C=000011000663.關(guān)系和邏輯運(yùn)算函數(shù)
除了上面介紹的關(guān)系和邏輯運(yùn)算符外,MATLAB中還提供了一些關(guān)系和邏輯運(yùn)算函數(shù)如表1-10所示。表1-10關(guān)系和邏輯操作符
函數(shù)名說明xor(x,y)異或any(x)向量x中的任一元素非零,返回1all(x)向量x中的所有元素非零,返回1isnan(x)當(dāng)x是NaN時(shí),返回1isinf(x)當(dāng)x是inf時(shí),返回1finite(x)當(dāng)x屬于(-∞,+∞)時(shí)返回1,而當(dāng)x=NaN時(shí),返回零。672.3.4多項(xiàng)式運(yùn)算
多項(xiàng)式運(yùn)算是數(shù)學(xué)中最基本的運(yùn)算之一。在MATLAB中同樣可對(duì)多項(xiàng)式進(jìn)行相應(yīng)的一系列運(yùn)算。1.多項(xiàng)式的表示在高等數(shù)學(xué)中,多項(xiàng)式一般可表示成以下形式f(x)=a0
x
n+a1x
n-1+…+an-1x+an其中,a0,a1,…,an稱為多項(xiàng)式的系數(shù)。所以在MATLAB中多項(xiàng)式很容易用其系數(shù)組成的行向量來表示,即P=[a
0
a
1…an]其中行向量是按其系數(shù)降冪排列組成的系數(shù)向量。68
在MATLAB中,利用函數(shù)poly2str()可將多項(xiàng)式的系數(shù)向量表示成相應(yīng)多項(xiàng)式的習(xí)慣表示形式,該函數(shù)的調(diào)用格式為f=poly2str(p,'s')其中,p為多項(xiàng)式的系數(shù)向量;s為多項(xiàng)式的變量名;f為相應(yīng)的多項(xiàng)式。例>>p=[15032];f=poly2str(p,'x')結(jié)果顯示:f=x^4+5x^3+3x+2692.多項(xiàng)式的四則運(yùn)算多項(xiàng)式的四則運(yùn)算主要是多項(xiàng)式的加、減、乘和除運(yùn)算。其中多項(xiàng)式的加、減運(yùn)算要求兩個(gè)相加、減多項(xiàng)式的系數(shù)向量維數(shù)的大小必須相等。多項(xiàng)式的加減例1-12
求以下兩個(gè)多項(xiàng)式
f1(x)=x
4+5x
3+3x+2,f2(x)=x
2+6x+5的和解
MATLAB命令如下>>p1=[15032];p2=[00165];p=p1+p2702)多項(xiàng)式的乘法在MATLAB中,多項(xiàng)式的乘法運(yùn)算,利用函數(shù)conv()來實(shí)現(xiàn),函數(shù)conv()相等于執(zhí)行兩個(gè)數(shù)組的卷積,其調(diào)用格式為
p=conv(p1,p2)3)多項(xiàng)式的除法在MATLAB中,多項(xiàng)式的除法運(yùn)算,利用函數(shù)deconv()來實(shí)現(xiàn),其調(diào)用格式為
[p,r]=deconv(p1,p2)713.多項(xiàng)式的值及多項(xiàng)式的導(dǎo)數(shù)如果f(x)函數(shù)為下面的一個(gè)多項(xiàng)式f(x)=a0xn+a1xn-1+…+an-1x+an則可以求出該函數(shù)的導(dǎo)數(shù)函數(shù)為
f'(x)=na0xn-1+(n-1)a1xn-2+…+an-1
在MATLAB中提供了多項(xiàng)式求值函數(shù)polyval()和多項(xiàng)式求導(dǎo)的函數(shù)polyder()它們的調(diào)用格式分別為
f0=polyval(p,x0)及dp=polyder(p)72
同樣,MATLAB也提供了多項(xiàng)式矩陣的求值函數(shù)polyvalm(),其調(diào)用格式為fA=polyvalm(p,A)4.多項(xiàng)式的求解
MATLAB中多項(xiàng)式的求解運(yùn)算可利用函數(shù)roots()來實(shí)現(xiàn),其調(diào)用格式為r=roots(p)732.4MATLAB的符號(hào)運(yùn)算MATLAB的優(yōu)點(diǎn)不僅在于其強(qiáng)大的數(shù)值運(yùn)算功能,而且也在于其強(qiáng)大的符號(hào)運(yùn)算功能。MATLAB的符號(hào)運(yùn)算是通過集成在MATLAB中的符號(hào)數(shù)學(xué)工具箱(SymbolicMathToolbox)來實(shí)現(xiàn)的。它可完成幾乎所有的符號(hào)運(yùn)算功能,如符號(hào)表達(dá)式的生成、復(fù)合和化簡;符號(hào)矩陣的求解;符號(hào)微積分的求解;符號(hào)函數(shù)的畫圖;符號(hào)代數(shù)方程的求解;符號(hào)微分方程的求解等。74
2.4.1符號(hào)表達(dá)式的生成在MATLAB中的符號(hào)數(shù)學(xué)工具箱中,符號(hào)表達(dá)式是代表數(shù)字、函數(shù)和變量的MATLAB字符串或字符串?dāng)?shù)組,它不要求變量要有預(yù)先確定的值。符號(hào)表達(dá)式可以是符號(hào)函數(shù)或符號(hào)方程。其中,符號(hào)函數(shù)沒有等號(hào),而符號(hào)方程必須有等號(hào)。
MATLAB在內(nèi)部把符號(hào)表達(dá)式表示成字符串,以與數(shù)字區(qū)別。符號(hào)表達(dá)式可由以下三種方法生成。751.用單引號(hào)生成符號(hào)表達(dá)式在MATLAB中,符號(hào)表達(dá)式如同字符串一樣也可利用單引號(hào)來直接設(shè)定。如>>fun='sin(x)‘2.用函數(shù)sym()生成符號(hào)表達(dá)式在MATLAB可自動(dòng)確定變量類型的情況下,可不用函數(shù)sym()來顯式生成符號(hào)表達(dá)式。但在某些情況下,特別是在建立符號(hào)數(shù)組時(shí),必須要用函數(shù)sym()來將字符串轉(zhuǎn)換成符號(hào)表達(dá)式。如
>>A=sym('[sin(x)b;cd]')76>>symsKtT;fun=K*(exp(-t/T))結(jié)果顯示:fun=K*exp(-t/T)3.用命令syms生成符號(hào)表達(dá)式在MATLAB中,利用命令syms只能生成符號(hào)函數(shù),而不能生成符號(hào)方程。例如
另外,在MATLAB中,利用函數(shù)symvar()可知道符號(hào)表達(dá)式中哪些變量為符號(hào)變量。同時(shí)MATLAB會(huì)自動(dòng)把i,j,pi,inf,nan,eps等特殊字母不當(dāng)成符號(hào)變量。
772.4.2符號(hào)表達(dá)式的基本運(yùn)算
MATLAB的符號(hào)工具箱中,符號(hào)方程的求解包括符號(hào)代數(shù)線性方程的求解、符號(hào)代數(shù)非線性方程的求解和符號(hào)微分方程的求解等。1.符號(hào)表達(dá)式的提取分子/分母運(yùn)算在MATLAB中,如果符號(hào)表達(dá)式為有理分式的形式或可展開為有理分式的形式,則可通過函數(shù)numden()來提取符號(hào)表達(dá)式中的分子與分母。其調(diào)用格式如下[nem,den]=numden(f)78例>>f=sym('(x+d)/(a*x^2+b*x+c)');>>[num,den]=numden(f)運(yùn)行結(jié)果:num=x+dden=a*x^2+b*x+c
792.符號(hào)表達(dá)式的基本代數(shù)運(yùn)算在MATLAB中,符號(hào)表達(dá)式的加、減、乘、除四則運(yùn)算及冪運(yùn)算等基本的代數(shù)運(yùn)算,分別由函數(shù)symadd(),symsub(),symmul(),symdiv()及sympow()來實(shí)現(xiàn)。其中求和函數(shù)symadd()的調(diào)用格式為:
h=symadd(f,g)803.符號(hào)表達(dá)式與數(shù)值表達(dá)式的相互轉(zhuǎn)換在MATLAB中,利用函數(shù)numeric()(僅適用于MATLAB6.5及以前的版本)或eval()可將符號(hào)表達(dá)式轉(zhuǎn)換成數(shù)值表達(dá)式。反之,函數(shù)sym()可將數(shù)值表達(dá)式轉(zhuǎn)換成符號(hào)表達(dá)式。例
>>f='abs(-1)+sqrt(1)/2',p=eval(f),n=sym(p)運(yùn)行結(jié)果:f=abs(-1)+sqrt(1)/2p=1.5000n=3/2
81
若已知數(shù)值多項(xiàng)式系數(shù)向量,則可以通過符號(hào)運(yùn)算工具箱提供的函數(shù)poly2sym()將其轉(zhuǎn)換成多項(xiàng)式表達(dá)式。若已知多項(xiàng)式表達(dá)式,則可以由函數(shù)sym2poly()將其轉(zhuǎn)換成系數(shù)向量形式。它們調(diào)用格式為f=poly2sym(p)和p=sym2poly(f)其中,p為多項(xiàng)式系數(shù)降冪排列構(gòu)成的系數(shù)向量;f為多項(xiàng)式表達(dá)式。824.符號(hào)表達(dá)式的化簡在MATLAB中,函數(shù)simple()可按有關(guān)數(shù)學(xué)規(guī)則把符號(hào)表達(dá)式化簡成最簡形式,其調(diào)用格式如下:y=simple(f)835.符號(hào)表達(dá)式的替換在MATLAB的符號(hào)數(shù)學(xué)工具箱中,函數(shù)subexpr()和函數(shù)subs()可以進(jìn)行符號(hào)表達(dá)式的替換。其中函數(shù)subexpr()用于把復(fù)雜表達(dá)式中所含的多個(gè)相同子表達(dá)式用一個(gè)符號(hào)代替,使其表達(dá)簡潔,其調(diào)用格式如下g=subexpr(f,'S')
842.4.3符號(hào)表達(dá)式的微積分
MATLAB的符號(hào)工具箱中,符號(hào)微積分包括符號(hào)序列求和、符號(hào)極限、符號(hào)微分和符號(hào)積分等運(yùn)算。1.符號(hào)序列求和對(duì)于求和問題,在MATLAB中可利用符號(hào)序列求和函數(shù)symsum()來實(shí)現(xiàn),其調(diào)用格式為y=symsum(f,'x',a,b)%求符號(hào)表達(dá)式f在指定變量x
取遍[a,b]中所有整數(shù)和yy=symsum(f,'x')%求符號(hào)表達(dá)式f在指定變量x
取遍[0,x-1]中所有整數(shù)和yy=symsum(f,a,b)%求符號(hào)表達(dá)式f對(duì)獨(dú)立變量從a到b的所有整數(shù)和y852.符號(hào)極值在MATLAB中,符號(hào)極限由函數(shù)limit()來實(shí)現(xiàn),其調(diào)用格式為:y=limit(f,'x',a)%求符號(hào)表達(dá)式f對(duì)變量x趨于a時(shí)的極值yy=limit(f,a)%求符號(hào)表達(dá)式f對(duì)獨(dú)立變量趨于a時(shí)的極值yy=limit(f)%求符號(hào)表達(dá)式f對(duì)獨(dú)立變量在a=0時(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商場運(yùn)營服務(wù) 合同范例
- 敏捷開發(fā)合同范例
- 臨床醫(yī)學(xué)概論(內(nèi)科)練習(xí)題(含參考答案)
- N2級(jí)護(hù)理人員理論考核考試模擬題+參考答案
- 農(nóng)村地契合同范例
- 市政ppp項(xiàng)目合同范例
- 物業(yè)培訓(xùn)合同范例范例
- 土地流轉(zhuǎn)抵押合同范例
- 烏龜買賣合同范例
- 2025年大理道路貨物運(yùn)輸從業(yè)資格證考試
- 護(hù)士延續(xù)注冊體檢表
- 泌尿科一科一品匯報(bào)課件
- 西湖生死學(xué)智慧樹知到期末考試答案章節(jié)答案2024年浙江傳媒學(xué)院
- 不同地區(qū)城鎮(zhèn)化的過程和特點(diǎn)(第1課時(shí))高中地理中圖版(2019)必修二
- 一年級(jí)數(shù)學(xué)20以內(nèi)計(jì)算練習(xí)湊十法、破十法、借十法、平十法
- 中國痔病診療指南(2020版)
- 創(chuàng)辦精神病醫(yī)院申請
- 2024征信考試題庫(含答案)
- 學(xué)生學(xué)習(xí)概覽StudentLearningProfile
- 小班數(shù)學(xué)《認(rèn)識(shí)1到10的數(shù)字》課件
- 手工花項(xiàng)目策劃書
評(píng)論
0/150
提交評(píng)論