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

  • MATLAB 8.5基礎教程
  • 楊德平 孫顯錄 管殿柱等
  • 1375字
  • 2020-05-28 17:23:20

2.3 矩陣及其操作

MATLAB是基于矩陣運算的軟件,所有數據都以矩陣形式存儲。最基本的數據結構是二維的m×n矩陣(1×1的矩陣為標量、1×n的矩陣為向量),矩陣的創建及操作非常靈活、簡便。

2.3.1 矩陣的創建

1.數值矩陣的生成

矩陣可直接按行輸入每個元素來生成。同一行中的元素用逗號“,”或者空格符來分隔,且空格個數不限;不同的行用分號“;”分隔;所有元素在同一方括號“[]”內。

例如:

2.特殊矩陣的生成

(1)全零陣

(2)全1陣

(3)單位陣

(4)產生以輸入元素為對角線元素的矩陣

說明:將向量v寫入矩陣X的主對角線上,而矩陣其他元素為0。k表示上移或下移行數,正數表上移,負數表下移,0(默認值)表在對角線上。

例如:

(5)Magic(魔方)矩陣

格式:M=magic(n) %產生n階魔方矩陣

例如:

2.3.2 矩陣元素操作

1)矩陣A的第r行:A(r,:)。

2)矩陣A的第r列:A(:,r)。

3)依次提取矩陣A的每一列,將A拉伸為一個列向量:A(:)。

4)取矩陣A的第i1~i2行、第j1~j2列構成新矩陣:A(i1:i2,j1:j2)。

5)以逆序提取矩陣A的第i1~i2行,構成新矩陣:A(i2:-1:i1,:)。

6)以逆序提取矩陣A的第j1~j2列,構成新矩陣:A(:,j2:-1:j1)。

7)刪除A的第i1~i2行,構成新矩陣:A(i1:i2,:)=[]。

8)刪除A的第j1~j2列,構成新矩陣:A(:,j1:j2)=[]。

9)將矩陣A和B拼接成新矩陣(A和B的維數要適當):[A B];[A;B]。

2.3.3 矩陣的維數

對于m×n的矩陣A,可以使用函數size獲得A的維數。

例如:

2.3.4 矩陣賦值與擴展

MATLAB允許用戶對一個矩陣的單個元素進行賦值和操作。例如,如果要將矩陣A中第2行第3列的元素賦為10,則可以通過下面的語句來完成:

>>A(2,3)=10

這時將只改變該元素的值,而不影響其他元素的值。如果給出的行下標或列下標大于原來矩陣的行數和列數,則MATLAB將自動擴展原來的矩陣,并將擴展后未賦值的矩陣元素置為0。例如:

2.3.5 矩陣元素及重排

1.矩陣元素

在MATLAB中,也可以采用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應元素在內存中的排列順序。在MATLAB中,矩陣元素按列存儲,先存儲第一列,再存儲第二列,依此類推。例如:

這與人們常用的取法A(3,1),A(1,3)的結果相同。

2.矩陣重排

當向量的元素個數能表示成m×n的形式時,可以將其排為矩陣形式。

格式:A-reshape(x,m,n) %將向量x重新排成mXn的矩陣A

例如:

注:A(:)將矩陣A每一列元素堆疊起來,成為一個列向量,產生一個12×1的矩陣,等價于reshape(A,12,1),其轉置A(:)'就是行向量x。

2.3.6 矩陣復制

矩陣的階次在4階以下時,矩陣元素的輸入可以逐個寫入。但是當矩陣階次較大且結構相同時,用逐個輸入的方法太費時間,這時可以用矩陣復制的辦法來加快輸入的速度,常用函數repmat()來進行矩陣復制。

格式:repmat(A,m,n)%A為待復制的向量或矩陣,m、n為需要復制的行數和列數

【例2-10】 已知A=[1 3 6 9 12],試求:1)寫出對向量A復制6行的矩形B。

2)生成對向量A復制6行和兩列的矩陣C。

2.3.7 矩陣元素的查找

用find命令查找矩陣元素所在的位置及其對應的值。

【例2-11】 己知,分別找出矩陣中大于0、等于20、大于等于30的位置。

2.3.8 稀疏矩陣

當矩陣的大部分元素是零,只有少數元素為非零元素時,這種矩陣稱為稀疏矩陣。

例如,對【例2-11】給定的矩陣A,試求出其稀疏矩陣B,再轉換成全矩陣C,并繪出稀疏矩陣B的標示圖。

圖2-1 稀釋矩陣圖

圖2-2 稀釋矩陣標示圖

主站蜘蛛池模板: 邹平县| 陵水| 会理县| 巴彦县| 汝城县| 龙州县| 通河县| 新泰市| 昌图县| 天祝| 石城县| 汤原县| 竹山县| 山东| 祁连县| 边坝县| 千阳县| 河西区| 屏山县| 黄山市| 新平| 太原市| 麟游县| 宁河县| 大城县| 泊头市| 宜都市| 天峨县| 贵州省| 平陆县| 三原县| 靖宇县| 皋兰县| 油尖旺区| 丰县| 铁岭县| 扶风县| 赣榆县| 西充县| 镇远县| 吐鲁番市|