官术网_书友最值得收藏!

1.3 矩陣

1.3.1 矩陣的建立

MATLAB把矩陣作為基本運算對象。數值(標量)可被看成1×1的矩陣,矢量(一維數組)可被看成n×1或1×n的矩陣。在MATLAB中,不需要對矩陣的維數和類型進行說明,MATLAB會根據用戶所輸入的內容進行配置。創建矩陣有以下3種方法。

1.直接輸入創建矩陣

通過輸入矩陣中每個元素的值來建立一個矩陣,只需以左方括號開始,以逗號或空格為間隔輸入元素值,行與行之間用分號或單擊〈Enter〉鍵隔開,最后以右方括號結尾即可。當矩陣中的元素個數比較少時,這種方法非常適用。另外,用 “單引號” 界定的字符或字符串可創建字符矩陣。

例1-6】 創建3×3數值矩陣AB和字符矩陣C

當矩陣較大時,可以分行輸入,用〈Enter〉鍵代替分號,這樣的輸入形式比較接近線性代數中的矩陣。任何矩陣的元素內部都不能有空格,否則會被MATLAB認為是兩個元素。

2.矢量法創建矩陣

矢量可以由冒號和數字產生。其格式為:

說明:矢量是從初值開始,以增量為步長,直到不超過終值的所有元素所構成的序列。步長可缺省,默認為 “1”。當矩陣中的元素很多且有規律時,可通過矢量來建立一個矩陣。其基本格式為:

例1-7】 建立一個10以內的奇數矩陣。

3.函數法創建矩陣

利用函數可快速產生一些特別有用的矩陣,如單位矩陣、隨機矩陣及零矩陣等,特殊矩陣如表1-4所示。

表1-4 特殊矩陣

當某一項操作無結果時,MATLAB返回一個空矩陣。空矩陣的大小為零,但其確實存在于工作空間中,可以通過變量名訪問。

例1-8】 建立空矩陣A、單位矩陣B、常數矩陣 C、均勻分布隨機矩陣 D、正態分布的隨機矩陣E、零矩陣F

建立的矩陣將保存在MATLAB的工作區中,并可以隨時被調用。如果用戶不用clear命令清除它,或對它重新賦值,該矩陣將一直保存在工作區中直到MATLAB關閉為止。另外,矩陣函數中只有一個輸入參數,則建立的矩陣為方陣。

1.3.2 矩陣的基本運算

1.矩陣與標量的運算

運算包括加、減、乘、除和乘方運算。矩陣與標量運算是矩陣的每個元素對該標量的運算。MATLAB用符號 “” 計算乘方時,按照矩陣運算規則計算,要求矩陣為方陣;用符號“.” 計算乘方時,按照數組運算規則計算,對矩陣沒有限制。

例1-9】 已知矩陣A=,標量b=3,計算A+b、A?b、A/b和A.b。

2.矩陣與矩陣的運算

(1)加減運算

兩個矩陣的維數完全相同時,可以進行矩陣加減法運算。如果兩個矩陣的維數不相等,則MATLAB將給出錯誤信息,提示兩個矩陣的維數不相等。

(2)乘法運算

兩個矩陣的維數相容時(A的列數等于B的行數),可以進行AB的乘法運算。

(3)除法運算

矩陣的除法運算包括左除和右除兩種運算。其中

左除:A\ B=A-1BA為方矩陣。其中A-1=1/A

右除:A/B=AB-1B為方矩陣。其中B-1=1/B

可見,左除和右除的運算過程以及對矩陣的要求是不一樣的,其數學意義也不同。

(4)點運算

兩個矩陣之間的點運算是按照數組運算規則計算,矩陣的對應元素直接運算。要求參加運算的矩陣大小必須相同。有 “.?” “./” 和 “.\” 3種運算符。

例1-10】 已知矩陣 A=,矩陣 B=,求 A?BA.?BA\BA/BA.\BA./B的運算結果。

1.3.3 矩陣的操作

MATLAB中對矩陣的操作提供了多種簡便的方法,可以對矩陣進行元素操作、提取子塊、合并矩陣、轉置等操作。

1.元素操作

MATLAB允許用戶對一個矩陣的單個元素進行操作,可以通過元素的下標進行(行、列的序號是從1開始的),修改某些元素的值不會影響其他元素的值。

2.提取子塊

提取矩陣的某一部分,可以使用冒號表達式。在MATLAB中,冒號 “:” 表示 “全部”。

例1-11】 輸入一個4×3的矩陣,選出前3行構成一個矩陣;選出前兩列構成另一個矩陣。

3.矩陣合并

把兩個矩陣合并成一個大矩陣,有兩種形式:

說明:A矩陣與B矩陣的列數必須相同,B矩陣補在A矩陣的下面。

說明:A矩陣與B矩陣的行數必須相同,B矩陣補在A矩陣的右面。

4.矩陣的轉置

用符號 “′”(單引號)可以進行矩陣的轉置運算。

5.矩陣的展開

矩陣的展開是按照矩陣在內存中的實際存放形式展開的。矩陣的元素在內存中是按列存放的,即先存放第1列,接著存放第2列……把一個矩陣內的所有元素統一展開成一個列矢量,其指令格式為:

例1-12】 把矩陣A=和矩陣 B=(2 4 6)合并成一個矩陣,再轉置后展開。

6.矩陣的線性變換

MATLAB提供了一些矩陣變換函數,可以對矩陣作形式上的變換。矩陣的變換函數如表1-5所示。

表1-5 矩陣的變換函數

例1-13】 建立一個3×3的魔方矩陣,提取其對角元素和下三角矩陣,并上下翻轉。

1.3.4 復數和復數矩陣

MATLAB允許在運算和函數中使用復數或復數矩陣。復數的表示借助于特殊的字符 i或j,其值在工作空間中都顯示為0+1.0000i。

1.復數

復數可由以下兩種方式輸入:

其中,3.14為復數幅角的弧度,3為復數的模。

2.復數矩陣

復數矩陣有下列兩種表示方法:

兩式具有相同的結果。另外,當復數的虛部為一個確定的數值(而不是變量或矩陣)時,輸入時可以省略i(或j)前面的 “?” 符號。另外,如果 i、j被定義為其他變量(例如在程序設計中常常習慣于將i和j作為循環變量),則應定義另一個新的復數單位,如

這里將i1定義成新的復數單位。

1.3.5 稀疏矩陣

在許多工程實踐中,經常會出現一些只包含幾個非零元素,而其他大量的元素都為零值的矩陣,這種矩陣被稱為稀疏矩陣。如果按普通的矩陣處理方法來處理這些矩陣,不但會占用許多存儲空間,同時也會嚴重地影響運行速度。為了避免這些缺點,對于那些具有大量零元素的矩陣,MATLAB采用一種不同于一般矩陣的處理方法,只存儲非零元素的數值以及這些元素所對應的下標。例如,設矩陣A=A 是具有稀疏特征的矩陣,其完全存儲方式是列存儲每個元素,共有 12 個元素,即 2,0,0,0,0,0,3,0,0,1,0,0。其稀疏存儲方式為(1,1),2,(2,3),3,(3,2),1。稀疏存儲方式占用9個元素空間,當原矩陣更大且更加 “稀疏” 時,稀疏存儲方式會更有效地提高空間利用率。

雖然MATLAB對稀疏矩陣采用了特殊的處理,但其各種運算的規則仍然和完全矩陣一樣。另外,MATLAB也有專門的函數來處理稀疏矩陣,如表1-6所示。

表1-6 處理稀疏矩陣的主要函數

例1-14】 將矩陣A=轉化為稀疏矩陣B,并察看;再將稀疏矩陣B轉化為完全矩陣C

主站蜘蛛池模板: 萨迦县| 德令哈市| 株洲县| 曲阳县| 岱山县| 黄大仙区| 绥江县| 岳阳市| 焉耆| 金乡县| 英德市| 永昌县| 广德县| 洪洞县| 佛山市| 白城市| 罗江县| 阿鲁科尔沁旗| 万荣县| 罗平县| 八宿县| 顺义区| 清丰县| 山丹县| 丹阳市| 东兴市| 正蓝旗| 建昌县| 卫辉市| 贵定县| 台山市| 上犹县| 明光市| 揭西县| 象山县| 正定县| 凤凰县| 驻马店市| 云霄县| 邯郸市| 湛江市|