- MATLAB/Simulink權威指南:開發環境、程序設計、系統仿真與案例實戰
- 徐國保 張冰 石麗梅 吳凡
- 2254字
- 2019-12-20 20:33:24
2.1 矩陣的創建
2.1.1 直接輸入矩陣
MATLAB語言最簡單的創建矩陣的方法是通過鍵盤在命令窗口直接輸入矩陣,直接輸入法的規則如下:
(1)將所有矩陣元素置于一對方括號[]內;
(2)同一行不同元素之間用逗號“,”或者空格符來分隔;
(3)不同行用分號“;”或者回車符分隔。
例如,在命令空間輸入:

MATLAB語言創建復數矩陣,方法和創建一般實數矩陣一樣,虛數單位用i或者j表示。例如,創建復數矩陣:

其中:
(1)虛部和虛數單位之間可以使用乘號?連接,也可以忽略乘號?;
(2)復數矩陣元素可以用運算表達式;
(3)虛數單位用i或者j,顯示時都是i。
2.1.2 冒號生成矩陣
在MATLAB語言中,冒號“:”是一個很重要的運算符,可以利用它產生步長相等的一維數組或行向量。冒號表達式的格式如下:

其中:
(1)a是數組或者行向量的第一個元素,b是最后一個元素,step是步長增量;
(2)冒號表達式可以產生一個由a開始到b結束,以步長step自增或自減(步長為負值,b<a)的數組或者行向量;
(3)如果步長step=1,則冒號表達式可以省略步長,直接寫為x=a:b。
例如:

2.1.3 利用函數生成矩陣
在MATLAB語言中,可以利用函數生成一維數組或者行向量。
1.linspace函數
MATLAB語言可以用linspace函數生成初值、終值和元素個數已知的一維數組或者行向量,元素之間是等差數列。其調用格式如下:

其中:
(1)a和b分別是生成一維數組或者行向量的初值和終值,n是元素總數,當n省略時,自動產生100個元素;
(2)用linspace函數產生的一維數組或者行向量,n個元素是等差數列;
(3)當a>b時,元素之間是等差遞減,當a<b時,元素之間是等差遞增;
(4)顯然,linspace(a,b,n)與a:(b﹣a)/(n﹣1):b是等價的。
例如:

2.logspace函數
MATLAB語言可以用logspace函數生成一維數組或者行向量,元素之間是對數等比數列。其調用格式如下:

其中:
(1)第一個元素為10 a,最后一個元素為10 b,元素個數為n的對數等比數列;
(2)如果b的值為pi,則該函數產生到pi之間n個對數等比數列。
例如:

2.1.4 利用文本文件生成矩陣
MATLAB語言中的矩陣還可以由文本文件生成,即先建立txt數據文件,然后在命令窗口直接調用該文件,就能產生數據矩陣。需要注意,txt文件中不含變量名稱,文件名為矩陣變量名,每行數值個數相等。
這種生成矩陣方法的優點是可以將數據存儲在文本文件中,利用load函數,直接將數據讀入MATLAB工作空間中,自動生成矩陣,而不需要手動輸入數據。
【例2-1】 利用文本文件建立矩陣A,把下面代碼另存至工作目錄中,文件名為A.txt文件,如圖2-1所示。


圖2-1 文本文件數據

2.1.5 利用M文件生成矩陣
對于一些比較大的常用矩陣,MATLAB語言可以為它專門建立一個M文件,在命令窗口中直接調用文件,此種方法比較適合大型矩陣創建,便于修改。需要注意,M文件中的矩陣變量名不能與文件名相同,否則會出現變量名和文件名混亂的情況。
【例2-2】 利用M文件生成如下大矩陣A,文件名為exam_2_2.m:

2.1.6 特殊矩陣的生成
MATLAB語言中內置了許多特殊矩陣的生成函數,可以通過這些函數自動生成具有不同特殊性質的矩陣。表2-1是MATLAB語言中常見的特殊矩陣函數。
表2-1 常見的特殊矩陣函數

1.單位矩陣
MATLAB語言生成單位矩陣的函數是eye,其調用格式如下:

其中:
(1)A1=eye(n)表示生成n×n的單位矩陣;
(2)A2=eye(m,n)表示生成m×n的單位矩陣。
例如:

2.0矩陣
MATLAB語言生成所有元素為0的矩陣的函數是zeros,其調用格式如下:

其中:
(1)A1=zeros(n)表示生成n×n的0矩陣;
(2)A2=zeros(m,n)表示生成m×n的0矩陣。
例如:

3.1矩陣
MATLAB語言生成所有元素為1的矩陣的函數是ones,其調用格式如下:

其中:
(1)A1=ones(n)表示生成n×n的1矩陣;
(2)A2=ones(m,n)表示生成m×n的1矩陣。
例如:

4.魔方矩陣
魔方矩陣是指行和列,正和反斜對角線元素之和都相等的矩陣,MATLAB語言可以用magic函數生成魔方矩陣,其調用格式如下:

其中,A=magic(n)表示生成n×n的魔方矩陣,n>0,且n≠2。例如:

顯然,由B和C的結果可知,矩陣A是一個魔方矩陣。
5.0~1均勻分布隨機矩陣
MATLAB語言生成0~1均勻分布的隨機矩陣的函數是rand,其調用格式如下:

其中:
(1)A1=rand(n)表示生成n×n個元素值為0~1均勻分布的隨機矩陣;
(2)A2=rand(m,n)表示生成m×n個元素值為0~1均勻分布的隨機矩陣;
(3)A3=a+(b﹣a)?rand(m,n)表示生成m×n個元素值為a~b均勻分布的隨機矩陣。
例如:

6.正態分布隨機矩陣
MATLAB語言生成均值為0,單位方差的正態分布的隨機矩陣的函數是randn,其調用格式如下:

其中:
(1)A1=randn(n)表示生成n×n個元素且均值為0、方差為1的正態分布的隨機矩陣;
(2)A2=randn(m,n)表示生成m×n個元素且均值為0、方差為1的正態分布的隨機矩陣;
(3)A3=a+sqrt(b)?randn(m,n)表示生成m×n個元素且均值為a、方差為b的正態分布的隨機矩陣。
例如:

需要指出的是,rand和randn產生的都是隨機數,用戶所得結果可能與本書的例題不同。
7.對角矩陣
MATLAB語言生成對角矩陣的函數是diag,其調用格式如下:

其中:
(1)A=diag(v,k)表示生成以向量v元素作為矩陣A的第k條對角線元素的對角矩陣;
(2)當k=0時,v為A的主對角線,當k>0時,v為A的主對角線上方第k條對角線的元素,當k<0時,v為A的主對角線下方第k條對角線的元素。
例如:

若A是一個矩陣,則diag(A)是提取矩陣A的對角線矩陣。例如:

8.三角矩陣
MATLAB語言生成三角矩陣的函數是tril和triu,其調用格式如下:

其中:
(1)A1=tril(A,k)表示生成矩陣A中第k條對角線的下三角部分的矩陣;
(2)A1=triu(A,k)表示生成矩陣A中第k條對角線的上三角部分的矩陣;
(3)k=0為A的主對角線,k>0為A的主對角線以上,k<0為A的主對角線以下。
例如:

- Clojure Data Analysis Cookbook
- Big Data Analytics with Hadoop 3
- 我的J2EE成功之路
- Design for the Future
- 軟件架構設計
- Hands-On Artificial Intelligence on Amazon Web Services
- 離散事件系統建模與仿真
- 大學計算機應用基礎
- 變頻器、軟啟動器及PLC實用技術260問
- 工業機器人應用案例集錦
- Linux服務與安全管理
- 網絡安全管理實踐
- 中國戰略性新興產業研究與發展·智能制造裝備
- Chef:Powerful Infrastructure Automation
- LMMS:A Complete Guide to Dance Music Production Beginner's Guide