第2章-MATLAB數(shù)據(jù)及其運算_第1頁
第2章-MATLAB數(shù)據(jù)及其運算_第2頁
第2章-MATLAB數(shù)據(jù)及其運算_第3頁
第2章-MATLAB數(shù)據(jù)及其運算_第4頁
第2章-MATLAB數(shù)據(jù)及其運算_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機(jī)學(xué)院郭江鴻21B434

82519604第二章MATLAB數(shù)據(jù)及其運算參考教材:MATLAB程序設(shè)計與應(yīng)用(第二版)劉衛(wèi)國主編高等教育出版社2.1矩陣及其賦值2.2表達(dá)式2.3MATLAB的矩陣運算2.4字符串2.5*結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)習(xí)題&作業(yè)2.1矩陣及其賦值2.1.1矩陣MATLAB中最基本的數(shù)據(jù)結(jié)構(gòu)是矩陣(matrix)。1*1的矩陣----標(biāo)量(scalar):[5]或5只有一行或一列的矩陣-----向量(vector):

[1357]

行向量列向量3*3矩陣MATLAB中一個有趣的例子左圖所示的為文藝復(fù)興時期德國一個畫家兼業(yè)余數(shù)學(xué)家杜勒創(chuàng)作的版畫《憂郁者》,其右上角有一個矩陣。杜勒魔方陣163213510118967124151412.1.2矩陣元素賦值矩陣不需維數(shù)說明和類型定義,由計算機(jī)自動分配其所占存儲單元。每個變量代表一個矩陣,矩陣的每個元素都看作復(fù)數(shù),默認(rèn)的數(shù)據(jù)類型為雙精度型。(1)輸入矩陣最簡單的方法是輸入矩陣的元素表,每行的元素之間用空格或逗號隔開,用“;”號作為元素表中每一行的結(jié)束符,并用[]將元素表括起來。例如,在命令窗口輸入語句:>>a=[123;456;789]則結(jié)果為:a=123456789?矩陣賦值的其它方式(2)生成行向量向量的生成歸納為:from:step:to結(jié)構(gòu)。如:y=[0:2:10]得:y=[0,2,4,6,8,10]如果step=1,則可省略,如:x=1:5

則生成一個行向量,x=[12345](3)行向量還可以采用linspace函數(shù)產(chǎn)生

linspace(a,b,n)

[a,b]間等間隔的n個元素如:linspace(1,9,5)生成[1

3

5

7

9]

與a:(b-a)/(n-1):b等價

n省略時默認(rèn)為100(4)使用函數(shù)或程序生成矩陣:如:ones(3,2)

生成3x2的全1矩陣;magic(3)

生成3x3的魔方矩陣;randi(5,3,4)生成元素值不超過5的3x4的隨機(jī)整數(shù)矩陣(5)建立大矩陣:如:>>A=[123;456;789];>>B=[A,magic(3);ones(3),A](6)重排矩陣reshape在矩陣總元素不變

的前提下,重排成mxn

的矩陣。

reshape(A,m,n)(7)從外部數(shù)據(jù)文件裝載矩陣建立M文件,輸入矩陣,保存文件,運行文件后即自動建立該矩陣。1238164563577894921111231114561117892.1.3矩陣元素的使用>>x=a(1,3)+a(2,2)+a(3,1)矩陣變量名(下標(biāo)或序號)a(3,2)為

8(或a(6)為

8);下標(biāo)(Subscript):(行號,列號),行號從上到下,列號從左到右。序號(Index):矩陣元素的存儲是按列進(jìn)行的,順序是從上到下,從左到右。a=1234567892.1.4矩陣拆分(1)取子矩陣在一個下標(biāo)處單獨一個冒號,表示取出該下標(biāo)處所對應(yīng)的全部行或列。a(

:,k)

表示取矩陣a的第k列全部元素。

a(m,

:

)

表示取矩陣a的第m行全部元素。a(m:m+k,:)表示取a矩陣的第m~m+k行的全部元素

。a(:)

將矩陣a的所有元素按列堆疊起來,成為一個列向量。例如:a=magic(3);b=a(:,3)

%取出a矩陣的第三列。c=a(1:2,:)

%取出a矩陣的1到2行。d=a(1:2,1:2)%取出a矩陣1到2行的1至2列。e=a([1,3],:)%a矩陣1和3行的所有列,可以[13]。f=a([1,3],2:end)%取出a矩陣1和3行的2到3列。(2)利用空矩陣刪除矩陣的元素

空矩陣[]的維數(shù)為0。例:a(2,:)=[];

%刪除矩陣的第2行元素得:

a=816492也可以替換元素值:

a([1,3],2:end)=0練習(xí)2_1對于一個3x3隨機(jī)整數(shù)矩陣a,元素不大于9

(1)把各行倒置后結(jié)果放在a下面。(2)分別計算1,3,5行元素的和,構(gòu)成列向量b。(3)只保留a矩陣中的2、4、6行,構(gòu)成矩陣c。2.1.5復(fù)數(shù)(ComplexNumber)操作復(fù)數(shù)由實部(realpart)和虛部(imaginarypart)組成。虛數(shù)單位用i或j來表示。

6+5i=6+5j例:R=[1,2;4,5];I=[6,7;8,9];ri=R+i*Iri=1.0000+6.0000i2.0000+7.0000i4.0000+8.0000i5.0000+9.0000i或:ri=[1+6i,2+7i;4+8i,5+9i]2.2表達(dá)式(Expressions)

表達(dá)式表達(dá)式由變量、常量、運算符和函數(shù)組成。MATLAB對鍵入的表達(dá)式進(jìn)行翻譯和計算,語句的形式通常為:

變量=表達(dá)式;或簡單地寫作:表達(dá)式;;分號是可選的,如果該語句的最后一個字符是分號,則在執(zhí)行詞句時不在屏幕上顯示結(jié)果。>>rho=(sqrt(5)-1)/2

得:rho=0.6180>>a=abs(3+4i)

得:a=5若一個表達(dá)式太長,可用續(xù)行符...,如:>>z=10*sin(pi/3)*...

sin(pi/3);2.2.1變量(Variables)變量無需類型及維數(shù)說明,變量命名規(guī)則如下:1、變量名對大小寫敏感。(a與A是兩個不同的變量)2、變量名的首字符必須是字母,后面跟字母數(shù)字下劃線。3、函數(shù)的命名規(guī)則與變量相同。4、變量名應(yīng)避免使用系統(tǒng)的關(guān)鍵字。如for,while等.例如:變量、函數(shù)或m文件命名為2x1.mif

則會出錯。whos:顯示當(dāng)前工作空間(WorkSpace)中所有變量的一個簡單列表。clear:可以刪除工作空間的變量。clc:清命令窗口。常用預(yù)定義變量及其含義ans

計算結(jié)果的默認(rèn)賦值變量eps

正的極小值=2.2204e-016,通常稱機(jī)器零i

j

虛數(shù)單位pi

圓周率π的近似值Inf,inf

∞值,無窮大(1/0)NaN,

nan

不定值(0/0,inf/inf)在使用時,應(yīng)盡量避免對預(yù)定義變量重新賦值。如:計算表達(dá)式的值,并顯示計算結(jié)果。

x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i)

其中pi和i都是MATLAB預(yù)先定義的變量。課后思考:全面和深入了解eps(實質(zhì)上是一個函數(shù),表示數(shù)據(jù)的精度)。2.2.2常量(Numbers)一些數(shù)的例子:3-999.63972381.60210e-206.02252e23-3.14159j3e5ipi使用命令>>formattype,來控制數(shù)的顯示格式。數(shù)字顯示的格式——可以用help了解formatMATLAB命令pi的顯示格式說明formatshort3.1416默認(rèn)形式,小數(shù)點后顯示4位數(shù)字formatshorte3.1416e+0005位有效數(shù)字的科學(xué)記數(shù)形式formatlong3.1415926535897915位有效數(shù)字形式輸出formathex400921fb54442d1816位16進(jìn)制數(shù)formatrat355/133近似分?jǐn)?shù)練習(xí)2_21、一個運動的球在空中的位置由下式確定:

當(dāng)x0=10m,v0=15m/s,a=-9.81m/s2,求當(dāng)t=5s時,x=?答案:x=-37.6250x0=10;v0=15;a=-9.81;t=5;x=x0+v0*t+a*t^2/22、x=3,y=4,在MATLAB中求下式:答案:z=576x=3;y=4;z=x^2*y^3/(x-y)^23、畫出下面函數(shù)在0x50范圍內(nèi)的圖象。結(jié)果如右圖:>>x=0:0.1:50;>>y=2*exp(-0.2*x);>>plot(x,y)2.3MATLAB的矩陣運算2.3.1算術(shù)運算(1)矩陣加減運算:兩個同維矩陣,才能進(jìn)行加減運算,對應(yīng)元素相加減。一個標(biāo)量與矩陣相加減時,結(jié)果為這個標(biāo)量與矩陣的每一個元素相加減。x=[2,-1,0;32-4];y=ones(2,3);x-y=?[1,-2,-1;2,1,-5]x+2=?[4,1,2;5,4,-2]

(2)矩陣乘法滿足a的列數(shù)等于b的行數(shù),則e=a*b;一個標(biāo)量與矩陣相乘時,結(jié)果為這個標(biāo)量與矩陣的每一個元素相乘。如:x=[1,3,1;2,3,1];

y=[1,2;3,0;7,4];

>>

z=x*y;

>>w=2*x;(3)矩陣除法在線性代數(shù)中,本沒有矩陣除法,它是由逆矩陣引申來的。MATLAB中,矩陣求逆(Matrixinverse)的函數(shù)為:

Y=inv(X)方程A*X=B的解為:X=inv(A)*B=A\B,A\B稱為A左除B,左除時要求兩矩陣行數(shù)相等。方程X*A=B的解為:X=B*inv(A)=B/A,B/A稱為A右除B,右除時要求兩矩陣列數(shù)相等。求解線性方程組6x1+3x2+4x3=3-2x1+5x2+7x3=-48x1-4x2-3x3=-7A=[634;-257;8-4-3];B=[3;-4;-7];x=A\B%A左除B,A與B行數(shù)相等x=0.60007.0000-5.4000方程A*x=B

注意:

含有標(biāo)量的左除和右除結(jié)果相同。

如:3/4(4右除3)和4\3(4左除3)都等于0.75

a=[10.5,2.5]時a/5和5\a都等于[2.100

0

0.5000]方程也可寫為:

x*A’=B’

A’與B’列數(shù)相同則x=B’*inv(A’)=B’/A’%A’右除B’

x相同,只不過是個行向量,x=x1

x2

x3(4)矩陣的乘方

一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標(biāo)量。

例如:A=[1,

2

;

4

,

5];B=A^2C=A^0.5得:B=[9,12;24,33]C=[0.5373+0.5373i,0.7339-0.1967i1.4679-0.3933i,2.0052+0.1440i]

A=C*C

%驗證C(5)矩陣點運算矩陣中對應(yīng)元素進(jìn)行運算,要求兩個矩陣的維數(shù)相同。設(shè)X=[123];Y=[456];運算式輸出結(jié)果思考??Z=X.*YZ=X.\YZ=X.^YZ=X.^2Z=2.^[XY][x

y]由小矩陣建立大矩陣Z=41018Z=4.02.52.0Z=132729Z=149Z=248163264X*Y能成立嗎?有左除右除之分嗎?Y./XX^2能成立嗎?注意區(qū)分矩陣乘法與點乘算式答案A*B???Errorusing==>*Innermatrixdimensionsmustagree.A.*B點運算是MATLAB很有特色的運算,在實際應(yīng)用中起著很重要的作用。當(dāng)x=

-2*pi:0.01:2*pi

,求y=sinx*cos8x的值。x=-2*pi:0.01:2*piy=sin(x)*cos(8*x)???(6)常用數(shù)學(xué)函數(shù)三角函數(shù)以弧度為單位計算。函數(shù)名含義sin正弦函數(shù)cos余弦函數(shù)tan正切函數(shù)sqrt求平方根log自然對數(shù)log1010為底的對數(shù)abs求絕對值或模gcd最大公因子lcm最小公倍數(shù)取整函數(shù)例:x=-2.65floor(x)=-3ceil(x)=-2fix(x)=-2round(x)=-3x=2.45floor(x)=2ceil(x)=3fix(x)=2round(x)=2floor:不大于自變量的最大整數(shù)ceil:不小于自變量的最小整數(shù)fix:向零方向取整round:四舍五入到最鄰的整數(shù)0123-3-2-1Rem(求余)與mod(模運算)函數(shù)都需要x、y具有相同大小的實矩陣或標(biāo)量當(dāng)y不為零時,rem(x,y)=x-y.*fix(x./y)

mod(x,y)=x-y.*floor(x./y)

如:

rem(9,4)值為1,mod(9,4)值1

rem(-9,4)值-9-4.*fix(-9./4)

=-9-4.*-2=-1

mod(-9,4)值-9-4.*floor(-9./4)

=-9-4.*-3=3

顯然當(dāng)x和y:

符號相同時,兩者結(jié)果相等;

符號不同時,結(jié)果一般不相等。當(dāng)y等于零時,rem(x,0)=NaN

mod(x,0)=xrem 求余數(shù)mod 模運算實驗一Matlab運算基礎(chǔ)(1)要求:A矩陣不用手工輸入,自動生成。

提示:可以使用reshape函數(shù)關(guān)系運算的法則:(1)比較量是標(biāo)量:直接比較兩數(shù)的大小。若關(guān)系成立,結(jié)果為1,否則為0。(2)比較量是兩個同維矩陣:兩矩陣相同位置的元素逐個比較。結(jié)果是一個維數(shù)與原矩陣相同的矩陣,其元素由0或1組成。(3)一個標(biāo)量,一個矩陣:標(biāo)量與矩陣的每一個元素逐個比較,結(jié)果是一個維數(shù)與原矩陣相同的矩陣,它的元素由0或1組成。2.3.2關(guān)系運算

>,>=,<,<=,~=,==關(guān)系運算的結(jié)果只能是0(假)或1(真)例:建立4階方陣A,判斷A的元素是否能被3整除A=magic(4)A=16231351110897612414151rem(A,3)1201221201001201p=0010000010110010p=rem(A,3)==02.3.3邏輯運算邏輯量只能取0(假)和1(真)兩個值。輸入(與)and(或)or(非)not(異或)ExclusiveorABA&BA|B~Axor(A,B)000010010111100101111100邏輯運算法則(1)兩個同維矩陣:矩陣相同位置上的元素按規(guī)則逐個進(jìn)行。運算結(jié)果與原矩陣同維,其元素由1或0組成。(2)一個是標(biāo)量,一個是矩陣:標(biāo)量與矩陣中的每個元素按規(guī)則逐個進(jìn)行。運算結(jié)果與矩陣同維,其元素由1或0組成。在算術(shù)、關(guān)系、邏輯運算中,算術(shù)運算優(yōu)先級最高,邏輯運算優(yōu)先級最低。

~高于&和|。如:A=-3:3

L1=~A,L2=A>-2&A<1,L3=~(A>0)結(jié)果:

A=

-3-2-10123

L1=

000

1000

L2=

001

1000

L3=

11

11000常用的關(guān)系與邏輯運算函數(shù)D=1023045678910any(D)函數(shù)值:1111all(D)函數(shù)值:

0011默認(rèn)對每個列向量判斷,如果矩陣是行向量,則判斷該行向量find函數(shù)

功能:找出矩陣中非零元素的下標(biāo)或序號。I=find(expr)

如I=find([2,0,8;0,4,5])返回序號:[R,C]=find(expr)例:建立矩陣A,找出在[10,20]區(qū)間的元素的位置。A=[4,15,-45,10,6;56,0,17,-45,0]A=415-4510656017-450A>=10&A<=20

ans=3 6 7 序號(按列)符合條件的元素所在

行號和列號I=

1

4

5

6R=1212C=1233find(

)或者[R,C]=find(A>=10&A<=20)R=

C=

1

22 31 4實驗一Matlab運算基礎(chǔ)(2)要求:A矩陣不用手工輸入,自動生成。

提示:可以使用reshape函數(shù)2.4字符串字符串:用單引號括起來的字符序列。字符串用ASCII碼形式存儲。xm='EastChinaJiaoTongUniversity'MATLAB將字符串當(dāng)作一個行向量,每個元素對應(yīng)一個字符。也可以建立多行字符串矩陣,要求各行字符數(shù)相等。例:ch=['abcdef';'123456']例:建立一個字符串向量,然后對該向量做如下處理(1)取第1~5個字符組成的子字符串。(2)將字符串倒過來重新排列。(3)將字符串中的小寫字母變成相應(yīng)的大寫字母,其余字符不變。(4)統(tǒng)計字符串中小寫字母的個數(shù)。ch='ABc123d4e56Fg9';subch=ch(1:5)%取子字符串revch=ch(end:-1:1)%將字符串倒排k=find(ch>='a'&ch<='z')%找小寫字母的位置ch(k)=ch(k)-32;%將小寫字母變成相應(yīng)的大寫字母char(ch)%或者直接輸出chlength(k)%統(tǒng)計小寫字母的個數(shù)實驗一Matlab運算基礎(chǔ)(3)要求:A矩陣不用手工輸入,自動生成。

提示:可以使用reshape函數(shù)*2.5結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù)(1)結(jié)構(gòu)數(shù)據(jù)

Matlab通過使用(Structure)數(shù)據(jù)類型把一組不同類型但同時又是在邏輯上相關(guān)的數(shù)據(jù)組成一個有機(jī)的整體,以便于管理和應(yīng)用。結(jié)構(gòu)矩陣名.成員名=表達(dá)式例如建立一個含有3個元素的結(jié)構(gòu)矩陣a:a(1).x1=10;a(1).x2=‘liu’;a(1).x3=[11,21;34,78];a(2).x1=12;a(2).x2=‘wang’;a(2).x3=[34,191;27,578];a(3).x1=14;

a(3).x2=‘cai’;

a(1).x3=[13,890;67,231];結(jié)構(gòu)矩陣元素的成員

也可以是結(jié)構(gòu)數(shù)據(jù)。

a=1x3structarraywithfields:x1x2x3不要求結(jié)構(gòu)矩陣的建立和引用a(2).x3%引用矩陣元素a(2)的成員x3ans=3419127578a(2)%引用矩陣元素a(2)ans=x1:12x2:‘wang’x3:[2x2double]a%引用結(jié)構(gòu)矩陣a

a=1x3structarraywithfields:x1x2x3a結(jié)構(gòu)矩陣(1x3):

(a(1)a(2)a(3))每個元素有3個成員:

x1,x2,x3結(jié)

溫馨提示

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

最新文檔

評論

0/150

提交評論