矩陣及其運算1.ppt_第1頁
矩陣及其運算1.ppt_第2頁
矩陣及其運算1.ppt_第3頁
矩陣及其運算1.ppt_第4頁
矩陣及其運算1.ppt_第5頁
已閱讀5頁,還剩78頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第第2 2章章 矩陣及其運算矩陣及其運算 陳英義 中國農(nóng)業(yè)大學 信息與電氣工程學院 Email: Tel: 62737994 信電大樓543 2.1 變量和數(shù)據(jù)操作 2.2 MATLAB矩陣 2.3 MATLAB運算 2.4 矩陣分析 2.5 矩陣的超越函數(shù) 2.6 字符串 2.7 結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù) 2.8 稀疏矩陣 2.1 2.1 變量和數(shù)據(jù)操作變量和數(shù)據(jù)操作 2.1.1 變量與賦值 1變量命名規(guī)則 變量名是以字母開頭,后接字母、數(shù)字或下劃線 的字符序列。 最多63個字符,并且變量名中不能含有空格和標 點符號。 變量名區(qū)分字母的大小寫。比如out和Out是兩個 不同的變量。 2賦值語句 (1) 變量=表達式 (2) 表達式 其中表達式是用運算符將有關運算量連 接起來的式子,其結(jié)果是一個矩陣。 例2-1 計算表達式的值,并顯示計算結(jié)果。 在MATLAB命令窗口輸入命令: x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y) 其中pi和i都是MATLAB預先定義的變量,分別代表 代表圓周率和虛數(shù)單位。sqrt代表平方根,abs為求 絕對值。 輸出結(jié)果是: z = -0.3488 + 0.3286i 2.1.2 預定義變量 在MATLAB工作空間中,還駐留幾個由系 統(tǒng)本身定義的變量。例如,用pi表示圓周 率的近似值,用i,j表示虛數(shù)單位。 預定義變量有特定的含義,在使用時,應 盡量避免對這些變量重新賦值。 2.1.3 內(nèi)存變量的管理 1內(nèi)存變量的刪除與修改 MATLAB工作空間窗口專門用于內(nèi)存變量 的管理。在工作空間窗口中可以顯示所有 內(nèi)存變量的屬性。當選中某些變量后,再 單擊Delete按鈕,就能刪除這些變量。當選 中某些變量后,再單擊Open按鈕,將進入 變量編輯器。通過變量編輯器可以直接觀 察變量中的具體元素,也可修改變量中的 具體元素。 clear命令用于刪除MATLAB工作空間中 的變量。 who和whos這兩個命令用于顯示在 MATLAB工作空間中已經(jīng)駐留的變量 名清單。 who命令只顯示出駐留變量的名稱, whos在給出變量名的細節(jié),同時,還給 出它們的大小、所占字節(jié)數(shù)及數(shù)據(jù)類型 等信息。 2內(nèi)存變量文件 利用MAT文件可以把當前MATLAB工 作空間中的一些有用變量長久地保留下 來,擴展名是.mat。MAT文件的生成 和裝入由save和load命令來完成。常用 格式為: save 文件名 變量名表 -append- ascii load 文件名 變量名表 -ascii 其中,文件名可以帶路徑,但不需帶擴 展名.mat,命令隱含一定對.mat文件進 行操作。 變量名表中的變量個數(shù)不限,只要內(nèi)存 或文件中存在即可,變量名之間以空格 分隔。 當變量名表省略時,保存或裝入全部變 量。 -ascii選項使文件以ASCII格式處理,省 略該選項時文件將以二進制格式處理。 save命令中的-append選項控制將變量追 加到MAT文件中。 2.1.4 MATLAB常用數(shù)學函數(shù) MATLAB提供了許多數(shù)學函數(shù),函數(shù)的自變量 規(guī)定為矩陣變量,運算法則是將函數(shù)逐項作用于 矩陣的元素上,因而運算的結(jié)果是一個與自變量 同維數(shù)的矩陣。 函數(shù)使用說明: (1) 三角函數(shù)以弧度為單位計算。 (2) abs函數(shù)可以求實數(shù)的絕對值、復數(shù)的模、字 符串的ASCII碼值。 (3) 用于取整的函數(shù)有fix、floor、ceil、round, 要注意它們的區(qū)別。 (4) rem與mod函數(shù)的區(qū)別。rem(x,y)和mod(x,y) 要求x,y必須為相同大小的實矩陣或為標量。 fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1; floor 朝負無窮方向取整,如floor(-1.3)=-2; floor(1.3)=1; ceil 朝正無窮方向取整,如ceil(-1.3)=-1; ceil(1.3)=2; round 四舍五入到最近的整數(shù),如round(-1.3)=- 1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2 rem(3,2)=1 rem(-3,-2)=-1 rem(3,-2)=1 rem(-3,2)=-1 mod(3,2)=1 mod(-3,-2)=-1 mod(3,-2)=-1 mod(-3,2)=1 由此可以看出,rem和mod是有符號區(qū)別的! 當除數(shù)與被除數(shù)的符號相同時,rem和mod的結(jié)果是 完全相同的;當除數(shù)與被除數(shù)的符號不相同時,結(jié) 果不同。 2.1.5 數(shù)據(jù)的輸出格式 MATLAB用十進制數(shù)表示一個常數(shù) ,具體可采用日常記數(shù)法和科學記數(shù)法 兩種表示方法。 在一般情況下,MATLAB內(nèi)部每一 個數(shù)據(jù)元素都是用雙精度數(shù)來表示和存 儲的。數(shù)據(jù)輸出時用戶可以用format命 令設置或改變數(shù)據(jù)輸出格式。format命 令的格式為: format 格式符 其中格式符決定數(shù)據(jù)的輸出格式 2.2 MATLAB2.2 MATLAB矩陣矩陣 2.2.1 矩陣的建立 1直接輸入法 最簡單的建立矩陣的方法是從鍵盤直 接輸入矩陣的元素。具體方法如下:將 矩陣的元素用方括號括起來,按矩陣行 的順序輸入各元素,同一行的各元素之 間用空格或逗號分隔,不同行的元素之 間用分號分隔。 2利用M文件建立矩陣 對于比較大且比較復雜的矩陣,可以 為它專門建立一個M文件。下面通過一 個簡單例子來說明如何利用M文件創(chuàng)建 矩陣。 例2-2 利用M文件建立MYMAT矩陣。 (1) 啟動有關編輯程序或MATLAB文本 編輯器,并輸入待建矩陣: (2) 把輸入的內(nèi)容以純文本方式存盤(設 文件名為mymatrix.m)。 (3) 在MATLAB命令窗口中輸入 mymatrix,即運行該M文件,就會自 動建立一個名為MYMAT的矩陣,可供 以后使用。 3利用冒號表達式建立一個向量 冒號表達式可以產(chǎn)生一個行向量,一般格式是 : e1:e2:e3 其中e1為初始值,e2為步長,e3為終止值。 在MATLAB中,還可以用linspace函數(shù)產(chǎn)生行向 量。其調(diào)用格式為: linspace(a,b,n) 其中a和b是生成向量的第一個和最后一個元素, n是元素總數(shù)。 顯然,linspace(a,b,n)與a:(b-a)/(n-1):b等價。 4建立大矩陣 大矩陣可由方括號中的小矩陣或向量建立起來。 2.2.2 矩陣的拆分 1矩陣元素 通過下標引用矩陣的元素,例如 A(3,2)=200 采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號 就是相應元素在內(nèi)存中的排列順序。在MATLAB中,矩 陣元素按列存儲,先第一列,再第二列,依次類推。例 如 A=1,2,3;4,5,6; A(3) ans = 2 顯然,序號(Index)與下標(Subscript )是一一對應的,以 mn矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。其 相互轉(zhuǎn)換關系也可利用sub2ind和ind2sub函數(shù)求得。 2矩陣拆分 (1) 利用冒號表達式獲得子矩陣 A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表 示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行 、第j列的元素。 A(i:i+m,:)表示取A矩陣第ii+m行的全部元素 ;A(:,k:k+m)表示取A矩陣第kk+m列的全部元素 ,A(i:i+m,k:k+m)表示取A矩陣第ii+m行內(nèi),并在 第kk+m列中的所有元素。 此外,還可利用一般向量和end運算符來表示矩陣下 標,從而獲得子矩陣。end表示某一維的末尾元素下 標。 (2) 利用空矩陣刪除矩陣的元素 在MATLAB中,定義為空矩陣。給 變量X賦空矩陣的語句為X=。注意, X=與clear X不同,clear是將X從工作 空間中刪除,而空矩陣則存在于工作空 間中,只是維數(shù)為0。 2.2.3 特殊矩陣 1通用的特殊矩陣 常用的產(chǎn)生通用特殊矩陣的函數(shù)有: zeros:產(chǎn)生全0矩陣(零矩陣)。 ones:產(chǎn)生全1矩陣(幺矩陣)。 eye:產(chǎn)生單位矩陣。 rand:產(chǎn)生01間均勻分布的隨機矩陣 。 randn:產(chǎn)生均值為0,方差為1的標準 正態(tài)分布隨機矩陣。 例2-3 分別建立33、32和與矩陣A同樣大小的零 矩陣。 (1) 建立一個33零矩陣。 zeros(3) (2) 建立一個32零矩陣。 zeros(3,2) (3) 設A為23矩陣,則可以用zeros(size(A)建立 一個與矩陣A同樣大小零矩陣。 A=1 2 3;4 5 6; %產(chǎn)生一個23階矩陣A zeros(size(A) %產(chǎn)生一個與矩陣A同樣大小的 零矩陣 例2-4 建立隨機矩陣: (1) 在區(qū)間20,50內(nèi)均勻分布的5階隨機矩陣 。 (2) 均值為0.6、方差為0.1的5階正態(tài)分布隨機 矩陣。 命令如下: x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 此外,常用的函數(shù)還有reshape(A,m,n),它 在矩陣總元素保持不變的前提下,將矩陣A 重新排成mn的二維矩陣。 2用于專門學科的特殊矩陣 (1) 魔方矩陣 魔方矩陣有一個有趣的性質(zhì),其每行、 每列及兩條對角線上的元素和都相等。 對于n階魔方陣,其元素由1,2,3,n2 共n2個整數(shù)組成。MATLAB提供了求 魔方矩陣的函數(shù)magic(n),其功能是生 成一個n階魔方陣。n為奇數(shù)、 例2-5 將101125等25個數(shù)填入一個5行5 列的表格中,使其每行每列及對角線的 和均為565。 M=100+magic(5) (2) 范得蒙矩陣 范得蒙(Vandermonde)矩陣最后一列全 為1,倒數(shù)第二列為一個指定的向量, 其他各列是其后列與倒數(shù)第二列的點乘 積??梢杂靡粋€指定向量生成一個范得 蒙矩陣。在MATLAB中,函數(shù) vander(V)生成以向量V為基礎向量的 范得蒙矩陣。例如, A=vander(1;2;3;5)即可得到上述范得 蒙矩陣。 (3) 希爾伯特矩陣 在MATLAB中,生成希爾伯特矩陣的 函數(shù)是hilb(n)。 使用一般方法求逆會因為原始數(shù)據(jù)的微 小擾動而產(chǎn)生不可靠的計算結(jié)果。 MATLAB中,有一個專門求希爾伯特 矩陣的逆的函數(shù)invhilb(n),其功能是 求n階的希爾伯特矩陣的逆矩陣。 例2-6 求4階希爾伯特矩陣及其逆矩陣。 命令如下: format rat %以有理形式輸出 H=hilb(4) H=invhilb(4) (4) 托普利茲矩陣 托普利茲(Toeplitz)矩陣除第一行第一 列外,其他每個元素都與左上角的元素 相同。生成托普利茲矩陣的函數(shù)是 toeplitz(x,y),它生成一個以x為第一列 ,y為第一行的托普利茲矩陣。這里x, y 均為向量,兩者不必等長。toeplitz(x) 用向量x生成一個對稱的托普利茲矩陣 。例如 T=toeplitz(1:6) (5) 伴隨矩陣(矩陣A中的元素都用它們在行 列式A中的代數(shù)余子式替換后得到的矩陣再 轉(zhuǎn)置,這個矩陣叫A的伴隨矩陣。 ) MATLAB生成伴隨矩陣的函數(shù)是compan(p), 其中p是一個多項式的系數(shù)向量,高次冪系 數(shù)排在前,低次冪排在后。例如,為了求多 項式的x3-7x+6的伴隨矩陣,可使用命令: p=1,0,-7,6; compan(p) (6) 帕斯卡矩陣(由楊輝三角形表組成 的矩陣稱為帕斯卡(Pascal)矩陣。楊輝 三角形表是二次項 (x+y)n 展開后的系 數(shù)隨自然數(shù) n 的增大組成的一個三角形 表 ) 我們知道,二次項(x+y) n展開后的系數(shù) 隨n的增大組成一個三角形表,稱為楊輝 三角形。由楊輝三角形表組成的矩陣稱為 帕斯卡(Pascal)矩陣。函數(shù)pascal(n)生成一 個n階帕斯卡矩陣。 例2-7 求(x+y)5的展開式。 在MATLAB命令窗口,輸入命令: pascal(6) 矩陣次對角線上的元素1,5,10,10,5,1即 為展開式的系數(shù)。 2.3 MATLAB運算 2.3.1算術運算 1基本算術運算 MATLAB的基本算術運算有:(加) 、(減)、*(乘)、/(右除)、(左除)、( 乘方)。 注意,運算是在矩陣意義下進行的,單 個數(shù)據(jù)的算術運算只是一種特例。 (1) 矩陣加減運算 假定有兩個矩陣A和B,則可以由 A+B和A-B實現(xiàn)矩陣的加減運算。運算 規(guī)則是:若A和B矩陣的維數(shù)相同,則 可以執(zhí)行矩陣的加減運算,A和B矩陣 的相應元素相加減。如果A與B的維數(shù) 不相同,則MATLAB將給出錯誤信息 ,提示用戶兩個矩陣的維數(shù)不匹配。 (2) 矩陣乘法 假定有兩個矩陣A和B,若A為mn矩陣 ,B為np矩陣,則C=A*B為mp矩陣 。 (3) 矩陣除法 在MATLAB中,有兩種矩陣除法運算:和/,分 別表示左除和右除。如果A矩陣是非奇異方陣, 則AB和B/A運算可以實現(xiàn)。AB等效于A的逆左 乘B矩陣,也就是inv(A)*B,而B/A等效于A矩陣 的逆右乘B矩陣,也就是B*inv(A)。 對于含有標量的運算,兩種除法運算的結(jié)果相同 ,如3/4和43有相同的值,都等于0.75。又如,設 a=10.5,25,則a/5=5a=2.1000 5.0000。對于矩 陣來說,左除和右除表示兩種不同的除數(shù)矩陣和 被除數(shù)矩陣的關系。對于矩陣運算,一般 ABB/A。 (4) 矩陣的乘方 一個矩陣的乘方運算可以表示成Ax,要 求A為方陣,x為標量。 2點運算 在MATLAB中,有一種特殊的運算,因 為其運算符是在有關算術運算符前面加點 ,所以叫點運算。點運算符有.*、./、.和. 。兩矩陣進行點運算是指它們的對應元素 進行相關運算,要求兩矩陣的維參數(shù)相同 。 2.3.2 關系運算 MATLAB提供了6種關系運算符:(大于)、=( 大于或等于)、=(等于)、=(不等于) 。它們的含義不難理解,但要注意其書 寫方法與數(shù)學中的不等式符號不盡相同 。 關系運算符的運算法則為: (1) 當兩個比較量是標量時,直接比 較兩數(shù)的大小。若關系成立,關系表達 式結(jié)果為1,否則為0。 (2) 當參與比較的量是兩個維數(shù)相同 的矩陣時,比較是對兩矩陣相同位置的 元素按標量關系運算規(guī)則逐個進行,并 給出元素比較結(jié)果。最終的關系運算的 結(jié)果是一個維數(shù)與原矩陣相同的矩陣, 它的元素由0或1組成。 (3) 當參與比較的一個是標量,而另一 個是矩陣時,則把標量與矩陣的每一個 元素按標量關系運算規(guī)則逐個比較,并 給出元素比較結(jié)果。最終的關系運算的 結(jié)果是一個維數(shù)與原矩陣相同的矩陣, 它的元素由0或1組成。 例2-8 產(chǎn)生5階隨機方陣A,其元素為 10,90區(qū)間的隨機整數(shù),然后判斷A的 元素是否能被3整除。 (1) 生成5階隨機方陣A。 A=fix(90-10+1)*rand(5)+10) (2) 判斷A的元素是否可以被3整除。 P=rem(A,3)=0 其中,rem(A,3)是矩陣A的每個元素除 以3的余數(shù)矩陣。此時,0被擴展為與A 同維數(shù)的零矩陣,P是進行等于(=)比 較的結(jié)果矩陣。 2.3.3 邏輯運算 MATLAB提供了3種邏輯運算符:56,0,67,-45,0 (2) 找出大于4的元素的位置。 find(A4) 2.4 矩陣分析 2.4.1 對角陣與三角陣 1對角陣 只有對角線上有非0元素的矩陣稱為對 角矩陣,對角線上的元素相等的對角矩 陣稱為數(shù)量矩陣,對角線上的元素都為 1的對角矩陣稱為單位矩陣。 (1) 提取矩陣的對角線元素 設A為mn矩陣,diag(A)函數(shù)用于提取矩陣A主 對角線元素,產(chǎn)生一個具有min(m,n)個元素的列 向量。 diag(A)函數(shù)還有一種形式diag(A,k),其功能是 提取第k條對角線的元素。 (2) 構(gòu)造對角矩陣 設V為具有m個元素的向量,diag(V)將產(chǎn)生一個 mm對角矩陣,其主對角線元素即為向量V的元 素。 diag(V)函數(shù)也有另一種形式diag(V,k),其功能 是產(chǎn)生一個nn(n=m+)對角陣,其第k條對角線 的元素即為向量V的元素。 例2-10 先建立55矩陣A,然后將A的第 一行元素乘以1,第二行乘以2,第 五行乘以5。 A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22; 10,12,19,21,3; 11,18,25,2,19; D=diag(1:5); D*A %用D左乘A,對A的每 行乘以一個指定常數(shù) 2三角陣 三角陣又進一步分為上三角陣和下三角 陣,所謂上三角陣,即矩陣的對角線以 下的元素全為0的一種矩陣,而下三角 陣則是對角線以上的元素全為0的一種 矩陣。 (1)上三角矩陣 求矩陣A的上三角陣的MATLAB函數(shù)是 triu(A)。 triu(A)函數(shù)也有另一種形式triu(A,k),其 功能是求矩陣A的第k條對角線以上的元素 。 (2)下三角矩陣 在MATLAB中,提取矩陣A的下三角矩陣 的函數(shù)是tril(A)和tril(A,k),其用法與提取 上三角矩陣的函數(shù)triu(A)和triu(A,k)完全 相同。 2.4.2 矩陣的轉(zhuǎn)置與旋轉(zhuǎn) 1矩陣的轉(zhuǎn)置 轉(zhuǎn)置運算符是單撇號()。 2矩陣的旋轉(zhuǎn) 利用函數(shù)rot90(A,k)將矩陣A旋轉(zhuǎn)90的k 倍,當k為1時可省略。 3矩陣的左右翻轉(zhuǎn) 對矩陣實施左右翻轉(zhuǎn)是將原矩陣的第一 列和最后一列調(diào)換,第二列和倒數(shù)第二 列調(diào)換,依次類推。MATLAB對 矩陣A實施左右翻轉(zhuǎn)的函數(shù)是fliplr(A) 。 4矩陣的上下翻轉(zhuǎn) MATLAB對矩陣A實施上下翻轉(zhuǎn)的函 數(shù)是flipud(A)。 2.4.3 矩陣的逆與偽逆 1矩陣的逆 對于一個方陣A,如果存在一個與其同階的方陣B, 使得: AB=BA=I (I為單位矩陣) 則稱B為A的逆矩陣,當然,A也是B的逆矩陣。 求一個矩陣的逆是一件非常煩瑣的工作,容易出錯 ,但在MATLAB中,求一個矩陣的逆非常容易。求 方陣A的逆矩陣可調(diào)用函數(shù)inv(A)。 例2-11 用求逆矩陣的方法解線性方程組。 Ax=b 其解為: x=A-1b 2矩陣的偽逆 如果矩陣A不是一個方陣,或者A是一個非滿 秩的方陣時,矩陣A沒有逆矩陣,但可以找 到一個與A的轉(zhuǎn)置矩陣A同型的矩陣B,使得 : ABA=A BAB=B 此時稱矩陣B為矩陣A的偽逆,也稱為廣義逆 矩陣。在MATLAB中,求一個矩陣偽逆的函 數(shù)是pinv(A)。 2.4.4 方陣的行列式 把一個方陣看作一個行列式,并對其按 行列式的規(guī)則求值,這個值就稱為矩陣 所對應的行列式的值。在MATLAB中 ,求方陣A所對應的行列式的值的函數(shù) 是det(A)。 2.4.5 矩陣的秩與跡 1矩陣的秩 矩陣線性無關的行數(shù)與列數(shù)稱為矩陣的 秩。在MATLAB中,求矩陣秩的函數(shù) 是rank(A)。 2矩陣的跡 矩陣的跡等于矩陣的對角線元素之和, 也等于矩陣的特征值之和。在 MATLAB中,求矩陣的跡的函數(shù)是 trace(A)。 2.4.6 向量和矩陣的范數(shù) 矩陣或向量的范數(shù)用來度量矩陣或向量 在某種意義下的長度。范數(shù)有多種方法 定義,其定義不同,范數(shù)值也就不同。 1向量的3種常用范數(shù)及其計算函數(shù) 在MATLAB中,求向量范數(shù)的函數(shù)為 : (1) norm(V)或norm(V,2):計算向量V 的2范數(shù)。 (2) norm(V,1):計算向量V的1范數(shù) 。 (3) norm(V,inf):計算向量V的范數(shù) 。 2矩陣的范數(shù)及其計算函數(shù) MATLAB提供了求3種矩陣范數(shù)的函數(shù),其函數(shù) 調(diào)用格式與求向量的范數(shù)的函數(shù)完全相同。 2.4.7 矩陣的條件數(shù) 在MATLAB中,計算矩陣A的3種條件數(shù)的函數(shù) 是: (1) cond(A,1) 計算A的1范數(shù)下的條件數(shù)。 (2) cond(A)或cond(A,2) 計算A的2范數(shù)數(shù)下的 條件數(shù)。 (3) cond(A,inf) 計算A的 范數(shù)下的條件數(shù)。 2.4.8 矩陣的特征值與特征向量 在MATLAB中,計算矩陣A的特征值 和特征向量的函數(shù)是eig(A),常用的調(diào) 用格式有3種: (1) E=eig(A):求矩陣A的全部特征值, 構(gòu)成向量E。 (2) V,D=eig(A):求矩陣A的全部特征 值,構(gòu)成對角陣D,并求A的特征向量 構(gòu)成V的列向量。 (3) V,D=eig(A,nobalance):與第2種格 式類似,但第2種格式中先對A作相似 變換后求矩陣A的特征值和特征向量, 而格式3直接求矩陣A的特征值和特征 向量。 例2-12 用求特征值的方法解方程。 3x5-7x4+5x2+2x-18=0 p=3,-7,0,5,2,-18; A=compan(p); %A的伴隨矩陣 x1=eig(A) %求A的特征值 x2=roots(p) %直接求多項式p 的零點 2.5 矩陣的超越函數(shù) 1矩陣平方根sqrtm sqrtm(A)計算矩陣A的平方根。 2矩陣對數(shù)logm logm(A)計算矩陣A的自然對數(shù)。此函 數(shù)輸入?yún)?shù)的條件與輸出結(jié)果間的關系 和函數(shù)sqrtm(A)完全一樣 3矩陣指數(shù)expm、expm1、expm2、 expm3 expm(A)、expm1(A)、expm2(A)、 expm3(A)的功能都求矩陣指數(shù)eA。 4普通矩陣函數(shù)funm funm(A,fun)用來計算直接作用于矩陣 A的由fun指定的超越函數(shù)值。當fun 取sqrt時,funm(A,sqrt)可以計算矩陣 A的平方根,與sqrtm(A)的計算結(jié)果一 樣。 2.6 字符串 在MATLAB中,字符串是用單撇號 括起來的字符序列。 MATLAB將字符串當作一個行向量, 每個元素對應一個字符,其標識方法和 數(shù)值向量相同。也可以建立多行字符串 矩陣。 字符串是以ASCII碼形式存儲的。abs和 double函數(shù)都可以用來獲取字符串矩陣 所對應的ASCII碼數(shù)值矩陣。相反, char函數(shù)可以把ASCII碼矩陣轉(zhuǎn)換為字 符串矩陣。 例2-13 建立一個字符串向量,然后對該 向量做如下處理: (1) 取第15個字符組成的子字符串。 (2) 將字符串倒過來重新排列。 (3) 將字符串中的小寫字母變成相應的 大寫字母,其余字符不變。 (4) 統(tǒng)計字符串中小寫字母的個數(shù)。 命令如下: ch=ABc123d4e56Fg9; subch=ch(1:5) %取子字符串 revch=ch(end:-1:1) %將字符串倒排 k=find(ch=a %找小寫字母的 位置 ch(k)=ch(k)-(a-A); %將小寫字母變成 相應的大寫字母 char(ch) length(k) %統(tǒng)計小寫字母的個數(shù) 與字符串有關的另一個與字符串有關的另一個重要函數(shù)是重要函數(shù)是evaleval,其調(diào)用格,其調(diào)用格 式為:式為: eval(teval(t) ) 其中其中t t為字符串為字符串。它的作用是把。它的作用是把字符串的內(nèi)容字符串的內(nèi)容作為對作為對 應的應的MATLABMATLAB語句來執(zhí)行。語句來執(zhí)行。 2.7 結(jié)構(gòu)數(shù)據(jù)和單元數(shù)據(jù) 2.7.1 結(jié)構(gòu)數(shù)據(jù) 1結(jié)構(gòu)矩陣的建立與引用 結(jié)構(gòu)矩陣的元素可以是不同的數(shù)據(jù)類型, 它能將一組具有不同屬性的數(shù)據(jù)納入到一 個統(tǒng)一的變量名下進行管理。建立一個結(jié) 構(gòu)矩陣可采用給結(jié)構(gòu)成員賦值的辦法。具 體格式為: 結(jié)構(gòu)矩陣名.成員名=表達式 其中表達式應理解為矩陣表達式。 2結(jié)構(gòu)成員的修改 可以根據(jù)需要增加或刪除結(jié)構(gòu)的成員。例如要給結(jié)構(gòu)矩陣 a增加一個成員x4,可給a中任意一個元素增加成員x4: a(1).x4=410075; 但其他成員均為空矩陣,可以使用賦值語句給它賦確定的 值。 要刪除結(jié)構(gòu)的成員,則可以使用rmfield函數(shù)來完成。例如 ,刪除成員x4: a=rmfield(a,x4); 3關于結(jié)構(gòu)的函數(shù) 除了一般的結(jié)構(gòu)數(shù)據(jù)的操作外,MATLAB還提供了部分 函數(shù)來進行結(jié)構(gòu)矩陣的操作。 2.7.2 單元數(shù)據(jù) 1單元矩陣的建立與引用 建立單元矩陣和一般矩陣相似,只是矩陣 元素用大括號括起來。 可以用帶有大括號下標的形式引用單元矩 陣元素。例如b3,3。單元矩陣的元素可以 是結(jié)構(gòu)或單元數(shù)據(jù)。 可以使用celldisp函數(shù)來顯示整個單元矩陣 ,如celldisp(b)。 2.8 稀疏矩陣 2.8.1 矩陣存儲方式 MATLAB的矩陣有兩種存儲方式:完 全存儲方式和稀疏存儲方式。 1完全存儲方式 完全存儲方式是將矩陣的全部元素按列 存儲。以前講到的矩陣的存儲方式都是 按這個方式存儲的,此存儲方式對稀疏 矩陣也適用。

溫馨提示

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

評論

0/150

提交評論