




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關于數(shù)據(jù)及其運算第一頁,共五十九頁,編輯于2023年,星期一矩陣是MATLAB最基本、最重要的數(shù)據(jù)對象,MATLAB的大部分運算或命令都是在矩陣運算的意義下執(zhí)行的,而且這種運算定義在復數(shù)域上。向量和單個數(shù)據(jù)都可以作為矩陣的特例來處理。數(shù)值數(shù)據(jù):雙精度型、單精度數(shù)、帶符號整數(shù)和無符號整數(shù)。字符數(shù)據(jù)。結構體(Structure)和單元(Cell)數(shù)據(jù)類型。稀疏矩陣(Sparse)。邏輯型數(shù)據(jù)。在MATLAB中,以數(shù)值1(非零)表示“真”,以數(shù)值0表示“假”。2.1MATLAB數(shù)據(jù)的特點第二頁,共五十九頁,編輯于2023年,星期一2.2變量及其操作2.2.1變量與賦值1.變量命名在MATLAB7.0中,變量名是以字母開頭,后接字母、數(shù)字或下劃線的字符序列,最多63個字符。在MATLAB中,變量名區(qū)分字母的大小寫。第三頁,共五十九頁,編輯于2023年,星期一2.賦值語句表達式是用運算符將有關運算量連接起來的式子,其結果是一個矩陣。(1)變量=表達式MATLAB將右邊表達式的值賦給左邊的變量(2)表達式MATLAB將表達式的值賦給預定義變量ans第四頁,共五十九頁,編輯于2023年,星期一在MATLAB命令窗口輸入命令:x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)其中pi和i都是MATLAB預先定義的變量,分別代表代表圓周率π和虛數(shù)單位。例2.1計算表達式的值。第五頁,共五十九頁,編輯于2023年,星期一一般的,如果想顯示運算結果,則在命令后面加;注釋以%開頭第六頁,共五十九頁,編輯于2023年,星期一
3.預定義變量在MATLAB工作空間中,還駐留幾個由系統(tǒng)本身定義的變量。例如,用pi表示圓周率π的近似值;
用i,j表示虛數(shù)單位。預定義變量有特定的含義,在使用時,應盡量避免對這些變量重新賦值。見教材P18表2.1第七頁,共五十九頁,編輯于2023年,星期一2.2.2變量的管理
1.內存變量的顯示與刪除
who和whos這兩個命令用于顯示在MATLAB工作空間中已經(jīng)駐留的變量名清單。who命令只顯示出駐留變量的名稱;whos在給出變量名的同時,還給出它們的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型等信息。第八頁,共五十九頁,編輯于2023年,星期一clear命令用于刪除MATLAB工作空間中的變量。
MATLAB工作空間窗口專門用于內存變量的管理。在工作空間窗口中可以顯示所有內存變量的屬性。當選中某些變量后,再單擊Delete按鈕,就能刪除這些變量。當選中某些變量后,再單擊OpenSelection按鈕,將進入變量編輯器。通過變量編輯器可以直接觀察變量中的具體元素,也可修改變量中的具體元素。第九頁,共五十九頁,編輯于2023年,星期一2.內存變量文件利用MAT文件可以把當前MATLAB工作空間中的一些有用變量長久地保留下來,擴展名是.mat。MAT文件的生成和裝入由save和load命令來完成。常用格式為:save文件名[變量名表][-append][-ascii]load文件名[變量名表][-ascii]第十頁,共五十九頁,編輯于2023年,星期一save文件名[變量名表][-append][-ascii]load文件名[變量名表][-ascii]其中,文件名可以帶路徑,但不需帶擴展名.mat,命令隱含一定對.mat文件進行操作。變量名表中的變量個數(shù)不限,只要內存或文件中存在即可,變量名之間以空格分隔。當變量名表省略時,保存或裝入全部變量。-ascii選項使文件以ASCII格式處理,省略該選項時文件將以二進制格式處理。save命令中的-append選項控制將變量追加到MAT文件中。第十一頁,共五十九頁,編輯于2023年,星期一還可以用FILE菜單中的SaveWorkspaceAs命令存放工作空間的全部變量。也可以通過FILE菜單中的ImportDate命令可以將保存在MAT文件中的全部變量裝入到MATLAB工作空間中。第十二頁,共五十九頁,編輯于2023年,星期一2.2.3數(shù)據(jù)的輸出格式
MATLAB用十進制數(shù)表示一個常數(shù),具體可采用日常記數(shù)法和科學記數(shù)法兩種表示方法。在一般情況下,MATLAB內部每一個數(shù)據(jù)元素都是用雙精度數(shù)來表示和存儲的。數(shù)據(jù)輸出時用戶可以用format命令設置或改變數(shù)據(jù)輸出格式。format命令的格式為:
format格式符其中格式符決定數(shù)據(jù)的輸出格式見P21表2.2第十三頁,共五十九頁,編輯于2023年,星期一2.3MATLAB矩陣的表示2.3.1矩陣的建立1.直接輸入法最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。第十四頁,共五十九頁,編輯于2023年,星期一可以建立復數(shù)矩陣a=exp(2);B=[1,2+i*a,a*sqrt(a);sin(pi/4),a/5,3.5+6i]第十五頁,共五十九頁,編輯于2023年,星期一2.利用M文件建立矩陣對于比較大且比較復雜的矩陣,可以為它專門建立一個M文件。下面通過一個簡單例子來說明如何利用M文件創(chuàng)建矩陣。第十六頁,共五十九頁,編輯于2023年,星期一
例2.2利用M文件建立MYMAT矩陣。啟動有關編輯程序或MATLAB文本編輯器,并輸入待建矩陣:M=[101,102,103,104,105,106,107,108,109;201,202,203,204,205,206,207,208,209;301,302,303,304,305,306,307,308,309](2)把輸入的內容以純文本方式存盤(設文件名為mymatrix.m)。
(3)在MATLAB命令窗口中輸入mymatrix,即運行該M文件,就會自動建立一個名為MYMAT的矩陣,可供以后使用。第十七頁,共五十九頁,編輯于2023年,星期一3.建立大矩陣大矩陣可由方括號中的小矩陣或向量建立起來。例如A=[123;456;789];C=[A,eye(size(A));ones(size(A)),A]第十八頁,共五十九頁,編輯于2023年,星期一2.3.2冒號表達式冒號表達式可以產生一個行向量,一般格式是:
e1:e2:e3其中e1為初始值,e2為步長,e3為終止值。在MATLAB中,還可以用linspace函數(shù)產生行向量。其調用格式為:linspace(a,b,n)其中a和b是生成向量的第一個和最后一個元素,n是元素總數(shù)。顯然,linspace(a,b,n)與a:(b-a)/(n-1):b等價。第十九頁,共五十九頁,編輯于2023年,星期一2.3.3矩陣的拆分1.矩陣元素
通過下標引用矩陣的元素.例如A(3,2)=200采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應元素在內存中的排列順序。在MATLAB中,矩陣元素按列存儲,先第一列,再第二列,依次類推。例如A=[1,2,3;4,5,6];
A(3)ans=
2顯然,序號(Index)與下標(Subscript)是一一對應的,以m×n矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。其相互轉換關系也可利用sub2ind和ind2sub函數(shù)求得。第二十頁,共五十九頁,編輯于2023年,星期一sub2ind(size(A),1,2)%求矩陣A中下標為(1,2)的元素的序號
[i,j]=ind2sub(size(A),3)%求矩陣A中序號為3的元素的下標size(A)%計算矩陣A的行數(shù)和列數(shù)length(A)%給出矩陣A中行數(shù)和列數(shù)較大者ndim(A)%給出矩陣A的維數(shù)reshape(A,m,n)%將矩陣A變?yōu)閙*n的二維矩陣第二十一頁,共五十九頁,編輯于2023年,星期一2.矩陣拆分利用冒號表達式獲得子矩陣
①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+m)表示取A矩陣第k~k+m列的全部元素
A(i:i+m,k:k+m)表示取A矩陣第i~i+m行內,并在第k~k+m列中的所有元素。③A(:)將矩陣A每一列元素堆疊起來,成為一個列向量,而這也是MATLAB變量的內部儲存方式。A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20]第二十二頁,共五十九頁,編輯于2023年,星期一此外,還可利用一般向量和end運算符來表示矩陣下標,從而獲得子矩陣。end表示某一維的末尾元素下標。A(end,:)A([14],3:end)第二十三頁,共五十九頁,編輯于2023年,星期一(2)利用空矩陣刪除矩陣的元素在MATLAB中,定義[]為空矩陣。給變量X賦空矩陣的語句為X=[]。注意,X=[]與clearX不同,clear是將X從工作空間中刪除,而空矩陣則存在于工作空間中,只是維數(shù)為0。A(:,[24])=[]第二十四頁,共五十九頁,編輯于2023年,星期一2.4MATLAB數(shù)據(jù)的運算
2.4.1算術運算1.基本算術運算
MATLAB的基本算術運算有:
+(加)、-(減)、*(乘)、/(右除)、\(左除)、^(乘方)。注意,運算是在矩陣意義下進行的,單個數(shù)據(jù)的算術運算只是一種特例。第二十五頁,共五十九頁,編輯于2023年,星期一(1)矩陣加減運算
假定有兩個矩陣A和B,則可以由A+B和A-B實現(xiàn)矩陣的加減運算。運算規(guī)則是:若A和B矩陣的維數(shù)相同,則可以執(zhí)行矩陣的加減運算,A和B矩陣的相應元素相加減。如果A與B的維數(shù)不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數(shù)不匹配。一個標量也可以和其他不同維數(shù)的矩陣進行加減運算。第二十六頁,共五十九頁,編輯于2023年,星期一(2)矩陣乘法假定有兩個矩陣A和B,若A為m×n矩陣,B為n×p矩陣,則C=A*B為m×p矩陣。矩陣也可以和標量相乘第二十七頁,共五十九頁,編輯于2023年,星期一(3)矩陣除法在MATLAB中,有兩種矩陣除法運算:\和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則A\B和B/A運算可以實現(xiàn)。A\B等效于A的逆左乘B矩陣,也就是inv(A)*BB/A等效于A矩陣的逆右乘B矩陣,也就是B*inv(A)a=[1,2,3;4,2,6;7,4,9];b=[4,3,2;7,5,1;12,7,92];第二十八頁,共五十九頁,編輯于2023年,星期一對于含有標量的運算,兩種除法運算的結果相同。如3/4和4\3有相同的值,都等于0.75。又如,設a=[10.5,25],則a/5=5\a=[2.10005.0000]。對于矩陣來說,左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關系。對于矩陣運算,一般A\B≠B/A。第二十九頁,共五十九頁,編輯于2023年,星期一(4)矩陣的乘方一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。
A=[1,2,3;4,5,6;7,8,9]A^3相當于A*A*A第三十頁,共五十九頁,編輯于2023年,星期一2.點運算
在MATLAB中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算。點運算符有.*、./、.\和.^。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數(shù)相同。第三十一頁,共五十九頁,編輯于2023年,星期一a=[1,2,3;4,5,6;7,4,9];b=[-1,0,1;1,-1,0;0,1,1];c=a.*bx=[1,2,3;4,5,6];y=[-2,1,3;-1,1,4];c=x./yd=x.\y第三十二頁,共五十九頁,編輯于2023年,星期一x=[1,2,3];y=[4,5,6];c=x.^yd=y.^xa=x.^2b=2.^x第三十三頁,共五十九頁,編輯于2023年,星期一3.MATLAB常用數(shù)學函數(shù)Matlab提供許多數(shù)學函數(shù),見P29表2.3函數(shù)使用說明:三角函數(shù)以弧度為單位計算。abs函數(shù)可以求實數(shù)的絕對值、復數(shù)的模、字符串的ASCII碼值。實數(shù)>>abs(-5)結果為5復數(shù)>>abs(1+i)結果為1.414字符串>>abs('AB')結果為6566第三十四頁,共五十九頁,編輯于2023年,星期一(3)用于取整的函數(shù)有fix、floor、ceil、round,要注意它們的區(qū)別。設x=2.45fix(x)floor(x)ceil(x)round(x)2232設y=-2.65fix(y)floor(y)ceil(y)round(y)-2-3-2-3第三十五頁,共五十九頁,編輯于2023年,星期一(4)rem與mod函數(shù)的區(qū)別。rem(x,y)和mod(x,y)要求x,y必須為相同大小的實矩陣或為標量。當y≠0時當y=0時,rem(x,0)=NaNmod(x,0)=x當x,y同號時,rem(x,y)=mod(x,y)當x,y異號時,rem(x,y)與x同號
mod(x,y)與y同號如:rem(7,3),mod(7,3)rem(-7,3),mod(-7,3)第三十六頁,共五十九頁,編輯于2023年,星期一注意其書寫方法與數(shù)學中的不等式符號不盡相同。關系運算符該運算符的功能關系運算符該運算符的功能<
小于>=大于等于>
大于==等于<=小于等于~=約等于2.4.2關系運算MATLAB提供了6種關系運算符:第三十七頁,共五十九頁,編輯于2023年,星期一
關系運算符的運算法則為:
(1)當兩個比較量是標量時,直接比較兩數(shù)的大小。若關系成立,關系表達式結果為1,否則為0。>>5>3結果為1(2)當參與比較的量是兩個維數(shù)相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關系運算規(guī)則逐個進行,并給出元素比較結果。最終的關系運算的結果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。>>a=[1,-5,7,4];b=[-1,6,7,2];>>c=a>bc=1001>>d=a==bd=0010第三十八頁,共五十九頁,編輯于2023年,星期一(3)當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規(guī)則逐個比較,并給出元素比較結果。最終的關系運算的結果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。>>A=[1,2,3;4,5,6;7,8,9];>>A==5ans=000010000第三十九頁,共五十九頁,編輯于2023年,星期一例2.3建立5階方陣A,判斷A的元素是否能被3整除。>>A=[24,35,13,22,63;23,39,47,80,80;...90,41,80,29,10;45,57,85,62,21;37,19,31,88,76]>>P=rem(A,3)==0
A=24351322632339478080904180291045578562213719318876P=1000101000100001100100000第四十頁,共五十九頁,編輯于2023年,星期一2.4.3邏輯運算
MATLAB提供了3種邏輯運算符:邏輯操作符功
能&與|或~非邏輯運算的運算法則為:(1)在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示。
第四十一頁,共五十九頁,編輯于2023年,星期一
(2)設參與邏輯運算的是兩個標量a和b,那么,
a&ba,b全為非零時,運算結果為1,否則為0。
a|ba,b中只要有一個非零,運算結果為1。
~a當a是零時,運算結果為1;當a非零時,運算結果為0。(3)若參與邏輯運算的是兩個同維矩陣,那么運算將對矩陣相同位置上的元素按標量規(guī)則逐個進行。最終運算結果是一個與原矩陣同維的矩陣,其元素由1或0組成。第四十二頁,共五十九頁,編輯于2023年,星期一(4)若參與邏輯運算的一個是標量,一個是矩陣,那么運算將在標量與矩陣中的每個元素之間按標量規(guī)則逐個進行。最終運算結果是一個與矩陣同維的矩陣,其元素由1或0組成。(5)邏輯非是單目運算符,也服從矩陣運算規(guī)則。
(6)在算術、關系、邏輯運算中,算術運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。第四十三頁,共五十九頁,編輯于2023年,星期一各種運算符的優(yōu)先級
優(yōu)先級運
算
符最高()(小括號)↓.’(轉置)‘(共軛轉置)
.^(數(shù)組和數(shù)值乘方)^(矩陣乘方)↓+(一元加法)-(一元減法)~(取反)↓.*(乘法)*(矩陣乘法)./(右除)
/(矩陣右除).\(左除)\(矩陣左除)↓+(加法)-(減法)↓:(冒號)↓<(小于)<=(小于或等于)>(大于)
>=(大于或等于)
==(等于)~=(不等于)↓&(邏輯與)最低|(邏輯或)第四十四頁,共五十九頁,編輯于2023年,星期一>>A=linspace(1,10,10)A=12345678910>>B=linspace(10,1,10)B=10987654321>>L1=A>4&B<7L1=0000111111>>L3=A>5|B>5L3=1111111111>>L4=~(A>6)L4=1111110000>>L5=~A>6L5=0000000000第四十五頁,共五十九頁,編輯于2023年,星期一例2.4在[0,3π]區(qū)間,求y=sin(x)的值。要求:(1)消去負半波,即(π,2π)區(qū)間內的函數(shù)值置0。(2)(π/3,2π/3)和(7π/3,8π/3)區(qū)間內取值均為sinπ/3。方法1:從自變量著手進行處理x=0:pi/100:3*pi;y=sin(x);y1=(x<pi|x>2*pi).*y;q=(x>pi/3&x<2*pi/3)|(x>7*pi/3&x<8*pi/3);qn=~q;y2=q*sin(pi/3)+qn.*y1;第四十六頁,共五十九頁,編輯于2023年,星期一方法2:從函數(shù)值著手進行處理x=0:pi/100:3*pi;y=sin(x);y1=(y>=0).*y;p=sin(pi/3);y2=(y>=p)*p+(y<p).*y1;第四十七頁,共五十九頁,編輯于2023年,星期一
此外,MATLAB還提供了一些關系與邏輯運算函數(shù)。將P32表2.4
例2.5建立矩陣A,然后找出在[10,20]區(qū)間的元素的位置。
(1)建立矩陣A。
A=[4,15,-45,10,6;56,0,17,-45,0](2)找出大于4的元素的位置。
find(A>=10&A<=20)第四十八頁,共五十九頁,編輯于2023年,星期一>>s=[2,1,0,4,0];>>t=[1,0,-1,3,0];>>xor(s,t)ans=01100>>any(s)ans=1>>all(s)ans=0第四十九頁,共五十九頁,編輯于2023年,星期一
2.5字符串在MATLAB中,字符串是用單撇號括起來的字符序列。>>xm='CentralSounthUniversity'xm=CentralSounthUniversity
MATLAB將字符串當作一個行向量,每個元素對應一個字符,其標識方法和數(shù)值向量相同。也可以建立多行字符串矩陣。>>ch=['abcdef';'123456']ch=abcdef123456第五十頁,共五十九頁,編輯于2023年,星期一字符串是以ASCII碼形式存儲的。abs和double函數(shù)都可以用來獲取字符串矩陣所對應的ASCII碼數(shù)值矩陣。char函數(shù)可以把ASCII碼矩陣轉換為字符串矩陣。>>s1='ABC';>>a=abs(s1)a=656667>>s=char(65)s=A>>p=[2292022920292332345323453];>>char(p)ans=媽媽愛寶寶第五十一頁,共五十九頁,編輯于2023年,星期一例2.5建立一個字符串向量,然后對該向量做如下處理:ABc123d4e56Fg9
(1)取第1~5個字符組成的子字符串。
(2)將字符串倒過來重新排列。
(3)將字符串中的小寫字母變成相應的大寫字母,其余字符不變。
(4)統(tǒng)計字符串中小寫字母的個數(shù)。第五十二頁,共五十九頁,編輯于2023年,星期一命令如下:ch=‘ABc123d4e56Fg9’;subch=ch(1:5)%取子字符串revch=ch(end:-1:1)%將字符串倒排k=find(ch>=‘a’&ch<=‘z’);%找小寫字母的位置ch(k)=ch(k)-(‘a’-‘A’)%將小寫字母變成相應的大寫字母length(k)%統(tǒng)計小寫字母的個數(shù)第五十三頁,共五十九頁,編輯于2023年,星期一與字符串有關的另一個重要函數(shù)是eval,其調用格式為:
eval(t)
其中t為字符串。
它的作用是把
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購房合同補充協(xié)議范本
- 財務管理系統(tǒng)實施合同
- 農業(yè)訂單合同樣本
- 材料供應合同書樣本
- 度室內裝飾壁畫合同:手繪墻畫服務協(xié)議
- 農業(yè)灌溉合同轉讓協(xié)議
- 農業(yè)機械租賃合同(范本7)
- 期貨市場算法交易策略定制服務考核試卷
- 家禽飼養(yǎng)業(yè)產品質量安全追溯體系構建考核試卷
- 工業(yè)控制計算機在印刷機械控制中的實踐考核試卷
- 生物醫(yī)藥研發(fā)實驗室的安全風險評估與控制
- 合肥科技職業(yè)學院單招計算機類考試復習題庫(含答案)
- 2018-2022年北京市中考真題數(shù)學試題匯編:填空壓軸(第16題)
- 初三物理常識試卷單選題100道及答案
- 2025年吉林省吉林市事業(yè)單位招聘入伍高校畢業(yè)生54人歷年高頻重點提升(共500題)附帶答案詳解
- 《智能制造技術基礎》課件-第6章 智能制造裝備
- 鋼結構地下停車場方案
- 《上市公司治理培訓》課件
- 新人教版小學五年級數(shù)學下冊《第一單元 觀察物體(三)》2022課標大單元整體教學設計-全析
- 《光伏電站運行與維護》課件-項目五 光伏電站常見故障處理
- 2024年貴州公需科目答案
評論
0/150
提交評論