![第二部分矩陣_第1頁](http://file4.renrendoc.com/view5/M00/3F/3B/wKhkGGY7966AeFr-AAGpRgxKwBo742.jpg)
![第二部分矩陣_第2頁](http://file4.renrendoc.com/view5/M00/3F/3B/wKhkGGY7966AeFr-AAGpRgxKwBo7422.jpg)
![第二部分矩陣_第3頁](http://file4.renrendoc.com/view5/M00/3F/3B/wKhkGGY7966AeFr-AAGpRgxKwBo7423.jpg)
![第二部分矩陣_第4頁](http://file4.renrendoc.com/view5/M00/3F/3B/wKhkGGY7966AeFr-AAGpRgxKwBo7424.jpg)
![第二部分矩陣_第5頁](http://file4.renrendoc.com/view5/M00/3F/3B/wKhkGGY7966AeFr-AAGpRgxKwBo7425.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章Matlab及其應用2.1MATLAB的基本矩陣運算2.2關系和邏輯運算
2.3矩陣操作2.4時間和日期函數2.5退出和保存工作空間2.6Matlab的變量及數據類型12.1、MATLAB的基本矩陣運算2.1.1簡單矩陣輸入1、命令行簡單鍵盤輸入用于很少數據輸入
NaNInf2、文件形式輸入文本文件:從文本文件中讀入數據mat文件:matlab自有的數據格式>>B=[123;456]B=12345622.1.2語句生成矩陣1、線性等間距格式矩陣(1)X=起始值:增加值:結束值(2)linspace命令a=linspace(1,10,5);(3)logspace命令b=logspace(0,2,10)2、矩陣連接c=[ab];3、用函數生成矩陣:zerosoneseyerandn32.1.3矩陣運算1、矩陣的運算符+:加法-:減法*:乘法;點乘:.*/:右除;右除:./\:左除;左除:.\^:乘方2、矩陣的轉置等運算’共軛轉置;.’轉置inv:矩陣求逆det:求行列式值eig:求特征值與特征向量4運算規(guī)則:從左到右;先乘除后加減;乘方運算符最高(1)兩矩陣加減A、維數相同時,進行加減運算時,對應的元素進行加減;
B、矩陣與標量加減,用矩陣中的每個元素都與標量進行加減運算;(2)兩矩陣相乘
A、前提是前一矩陣的列等于后一矩陣的行,與數學約定一樣;
B、矩陣與標量相乘,用矩陣中的每個元素都與標量進行相乘;(3)矩陣中的元素對元素的相乘:.*(4)矩陣中的元素對元素的相除:./.\(5)乘方運算z=x.^yx,y均為向量:z(i)=x(i)^y(i)x為向量,y為標量:z(i)=x(i)^yx為標量,y為向量:z(i)=x^y(i)52.1.4矩陣的超越函數函數名含義abs絕對值或者復數模sqrt平方根real實部imag虛部conj復數共軛round4舍5入到整數fix舍入到最接近0的整數floor舍入到最接近-∞的整數ceil舍入到最接近∞的整數6函數名含義sign符號函數sin正弦cos余弦tan正切asin反正弦acos反余弦atan反正切atan2第四象限反正切函數名含義sinh雙曲正弦cosh雙曲余弦tanh雙曲正切exp自然指數log自然對數log10以10為底的對數72.2關系和邏輯運算
1、關系操作符(1)MATLAB常用的關系操作符有:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、
==(等于)、~=(不等于)。(2)MATLAB的關系操作符可以用來比較兩個大小相同的數組,或者比較一個數組和一個標量。在與標量比較時,結果和數組大小一樣。(3)如果滿足指定的關系,返回1,否則返回0。
?a=1:9;b=a>4b=000011111?c=a(a>4)c=5678982、邏輯操作符(1)邏輯操作符定義了一種與或非的關系表達式。MATLAB的邏輯操作符有&(與)、|(或)、~(非)(2)所有邏輯運算符連接的兩個操作數或者同維、同大小,或者其中一個為標量。(3)邏輯運算符都是對元素的操作,每個非零元素都當作“1”處理,邏輯運算的結果是由1和0構成的矩陣。例如:?c=~(a>4)c=111100000?c=(a>4)&(a<7)c=0000110009與邏輯運算有關的函數函數:(1)all(A):c=all(x),則c=1,向量x中全為非零元素;
c=0,向量x中含有零元素(2)any(A):c=any(x),則c=1,向量x中含有非零元素;
c=0,向量x中全為零元素102.3、矩陣操作2.3.1矩陣下標1、MATLAB通過確認下標,可以對矩陣進行插入子塊、提取子塊、刪除子塊(刪除某些行列)和重排子塊的操作。>>B=[123;456;789];>>B(2,:)=[]>>B=1237892、為了提取矩陣a的第n行、第m列的元素值,使用a(n,m)可以得到。同樣,將矩陣a的第n行、第m列的元素值賦為r,使用a(n,m)=r這樣的命令。
注意:在提取矩陣值時,行或列的值大于矩陣的大小,則出錯;在給矩陣賦值時,如果行或者列超出矩陣的大小,則MATLAB自動擴充矩陣的規(guī)模,使得可以賦值,擴充部分以零填充。113、利用矩陣下標,MATLAB還提供了子矩陣功能。同樣是上面的a(n,m),如果n和m是向量,而不是標量,則將獲得指定矩陣的子塊.4、矩陣的子塊還可以被賦值。如果在取子塊時,n或m是“:”,則返回指定的所有行或列。5、矩陣的序號編址:按列計數。122.3.2矩陣大小1、在MATLAB命令行中,使用whos命令可以查看到所有變量的大小。2、為了獲得矩陣或者向量的大小,MATLAB還提供了兩個有用的函數size和length。(1)size調用:
A、不用參量x時:[m,n]=size(a)。當只有一個輸出變量時,size返回一個行向量,第一個數為行數,第二個數為列數;如果有兩個輸出變量,第一個返回量為行數,第二個返回數為列數。B、當使用x時,只能有一個輸出變量:m=size(a,x)
,x=1返回行數,x=2返回列數,這時只有一個返回值。(2)length返回行數或者列數的最大值,即length(a)=max(size(a))。132.3.3矩陣操作函數MATLAB提供了一組執(zhí)行矩陣操作的函數,例如:
flipud(a)使得矩陣上下翻轉,fliplr(a)使得矩陣左右翻轉
rot90(a)使矩陣a逆時針旋轉90度
rot90(a,k)使矩陣a逆時針旋轉k*90度
repmat(A,m,n)平鋪矩陣,將矩陣A復制m*n塊142.3.4矩陣查找和排序1、子矩陣的查找使用find命令完成,它返回關系表達式為真的下標。例如:?a=10:20;?find(a>15)ans=78910112、矩陣的排序:sort函數,它將矩陣按照升序排列。152.4時間和日期1、日歷函數:calendar2、時間函數:clock3、查看CPU時間:cputime4、日期函數:date5、秒表定時:tictoc162.5退出和保存工作空間:1、save:工作空間中的所有變量保存在磁盤上名為matlab.mat的文件中。2、save[文件名][變量名]將指定的變量保存在指定的文件中。如:>>savetempxyz把xyz這3個變量保存在文件temp.mat中。3、下次加載MATLAB時,可以利用load命令將保存在文件中的變量恢復到工作空間中,其格式為:(1)load將保存在matlab.mat中的變量裝入到matlab空間中。(2)load[文件名][變量名]從指定文件中將指定的變量裝入到matlab的工作空間中。如:>>loadtempx從文件temp.mat中只將變量x裝入到matlab的工作空間中。172.6Matlab的變量及數據類型變量區(qū)分字母的大小寫名字不能超過31(Matlab6.5版本為不超過65個)個字符變量必須以字母開頭,之后可以是任意字母、數字或者下劃線變量中不能含有標點符號182.6.1特殊變量特殊變量取值ans用于結果的缺省變量名pi圓周率eps計算機的最小數inf無窮大如1/0nan不等量如0/0iji=j=1-nargin函數的輸入變量數目nargout函數的輸出變量數目realmin最小的可用正實數realmax最大的可用正實數192.6.2復數不需要特殊的處理,可以直接進行。復數可以表示為:a=10-9i注意:虛部與虛數單位之間不能留空格
函數:complexz=complex(3,4)z=complex(3)z=complex(3,0)202.6.3MATLAB數據類型:數值類型、字符型、稀疏型、單元型、結構型、邏輯類型最常使用的是數值類型和字符型;稀疏型用于稀疏矩陣;單元型和結構型用于編寫大型軟件;8位型(6.0以上版本:16位型、32位型)用于圖象處理。
1、數值類型(double):
在缺省情況下,當結果為整數,作為整數顯示;當結果為實數,以小數后4位的精度近似顯示。
formatshort(默認)formatlong
2122不同的整型數據之間不能運算,例如:int8(22)*int16(5)×232、字符型(char):>>a=['sss';'bbb']a=sssbbb(1)字符數組的定義:字符數組就是字符串,字符串中的每一個字符在系統(tǒng)內部都相應地表示一個數值。a='Youarewelcome!'
a=Youarewelcome!size(a)
ans=11624相關函數A、函數disp用來顯示字符串:disp('Hello')HelloB、判斷一個變量是否為字符型數組,可以用函數class或ischar。x=class(a)y=ischar(a)
x=chary=125(2)字符與數值的相互轉換:
double:將一個字符串轉換為一個數值
char:將數值轉換為字符串s='Goodmorning!'s1=double(s)s2=char(s1)
s=Goodmorning!s1=711111111003210911111411010511010333s2=Goodmorning!26(3)二維字符數組:
創(chuàng)建二維字符數組時,每行的長度要相等。如果字符串長度不等,可以用空格充填較短的字符串。例如:s=['abc';'defg']
s=abcdefg
用char函數創(chuàng)建二維字符數組比較方便。當字符串長度不等時,char函數可以自動地在較短的字符中加上一定數量的尾部空格,使其與最長字符串的長度相等。27例如:
y=char('abc','defg','abcde')z1=length(y)z2=size(y)
y=abcdefgabcdez1=5z2=3528(4)字符串的比較
A、strcmp:判別兩個字符串是否相等B、strncmp:判別兩個字符串的前n個字符是否相等s1='glisten';s2='glitter';a1=strcmp(s1,s2)a2=strncmp(s1,s2,3)
a1=0a2=1注:尾部的空格s1='Thisisagoodexample'strrep(s1,'good','great')strrep(s1,'bad','great')strrep(s1,'','great')A=[‘aaa‘;’bbbbb’]B=strjust(A,’center’)29(5)字符串的合并30313、稀疏型(sparse):含有大量0的矩陣,稱為~矩陣。只存儲矩陣中的非0元素>>speye(4)生成單位稀疏矩陣ans=(1,1)1(2,2)1(3,3)1(4,4)1sprand均勻分布隨機數稀疏矩陣生成函數sparse把滿矩陣轉化為稀疏矩陣調用格式:sparse(A)sparse(i,j,s,m,n)
i和j為矢量,指矩陣中非0元素的行號和列號,s是一個全部元素為非0的矢量,m和n分別為輸出稀疏矩陣的行數和列數
[i,j,s]=find(s)[m,n]=size(s)S=sparse(i,j,s,m,n)324、單元型(cell):把不同類型的數據存儲在一起的數組稱為單元數組。單元數組中的每個元素是其他任意一種數據類型,通??梢詫⑾嚓P的尺寸大小不同的數據組合在一起。
>>a={1,'good',[123]}a=[1]'good'[1x3double](1)創(chuàng)建單元數組:cellc=cell(n):生成一個n*n維的空數組c=cell(m,n):生成一個m*n維的空數組c=cell(size(A)):生成一個和所包含的數組A階數完全相同的空數組EX1:A=eye(2)c=cell(size(A))
A=100133c=[][][][]EX2:給單元數組賦值D=cell(1,3)D{1,1}='Good';D{1,2}=[12;45];D{1,3}=1+4i;D
D=[][][]D='Good'[2x2double][1.0000+4.0000i]EX3:利用直接輸入的方法創(chuàng)建單元數組,單元數組的下標用圓括號括起來,右邊是單元數組的內容,用花括號括起來。Aa(1,1)={['GOOD']};Aa(1,2)={200};Aa(2,1)={5-6i};Aa(3,2)={[12;45]}
Aa='GOOD'[200][5.0000-6.0000i][][][2x2double]34(2)單元數組的顯示A、直接顯示AaAa='GOOD'[200][5.0000-6.0000i][][][2x2double]B、利用函數顯示celldisp(Aa)celldisp(Aa,'Bb')Aa{1,1}=GOODAa{2,1}=5.0000-6.0000iAa{3,1}=[]Aa{1,2}=200Aa{2,2}=[]Aa{3,2}=1245Bb表示顯示的名字35C、利用圖形顯示單元數組cellplot(Aa)
cellplot(Aa,’legend’)(3)單元數組的運算X=cell(2,3)X{1,2}='Welcome';X{1,3}=ones(4);X{2,3}=[123;456;789]Da=sum(X{1,3})Db=sum(X{2,3})
X=[][][][][][]X=[]'Welcome'[4x4double][][][3x3double]Da=4444Db=12151836(4)單元數組的變形E=reshape(X,1,6)cellplot(E)
E=[][]'Welcome'[][4x4double][3x3double](5)字符型單元數組:由于字符矩陣要求矩陣的每一行的長度相等,需要在字符串的尾端加入空格,在讀取的時候,又常常將末尾的空格去掉,很不方便。由于單元數組允許不同的單元內有不同類型和長度的數據,問題就可以避免。cellstr:將標準的字符型數組轉換為字符型單元數組。EX1:ne=['aaa';'bb'];c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《室性早搏導管消融》課件
- 會博通10單用戶版用戶操作指引
- 《動物防疫法》考試題庫100題(含答案)
- 蜂窩微納孔、量子單層石墨烯面料技改項目可行性研究報告寫作模板-申批備案
- 2025年河北女子職業(yè)技術學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 專題06 發(fā)展與合作-(解析版)
- 2025年昭通衛(wèi)生職業(yè)學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 《醫(yī)療器械法規(guī)培訓》課件
- 2025年春節(jié)消費機遇和備貨建議報告
- 中班區(qū)域活動計劃實施方案五篇
- 安全生產網格員培訓
- 小學數學分數四則混合運算300題帶答案
- 2024年交管12123學法減分考試題庫和答案
- 臨床下肢深靜脈血栓的預防和護理新進展
- 動物生產與流通環(huán)節(jié)檢疫(動物防疫檢疫課件)
- 2024年山東泰安市泰山財金投資集團有限公司招聘筆試參考題庫含答案解析
- 英語主語從句省公開課一等獎全國示范課微課金獎課件
- C139客戶開發(fā)管理模型
- 年度工作總結與計劃會議
- 醫(yī)保按病種分值付費(DIP)院內培訓
- 近五年重慶中考物理試題及答案2023
評論
0/150
提交評論