在 MATLAB 中,有些好用的指令可以產生各種特殊用途的矩陣,以便利不同的數值運算,這些指令可以列表如下:
指令 說明 zeros(m, n) 產生維度為 m×n ,構成元素全為 0 的矩陣 ones(m, n) 產生維度為 m×n ,構成元素全為 1 的矩陣 eye(n) 產生維度為 n×n ,對角線的各元素全為 1 ,其他各元素全為 0 的單位矩陣 pascal(m, n) 產生維度為 m×n 的 Pascal 矩陣 vander(m, n) 產生維度為 m×n 的 Vandermonde 矩陣 hilb(n) 產生維度為 n×n 的 Hilbert 矩陣 rand(m, n) 產生 [0, 1] 均勻分佈的亂數矩陣,其維度為 m×n randn(m, n) 產生 μ = 0, σ= 1 的正規分佈亂數矩陣,其維度為 m×n magic(n) 產生維度為 n×n 的魔方陣,其各個直行、橫列及兩對角線的元素和都相等 例如 ,hilb(n) 指令可以產生 n×n 的 Hilbert 矩陣,$H_{i,j}=\frac{1}{i+j+1}$,驗證如下:
另外,magic(n) 可以產生一個 n×n 的魔方陣(Magic Matrix),其各個直行、橫列及兩對角線的元素值總和都相等,例如:
rand 指令及 randn 指令則常用於產生亂數矩陣,其機率分布之差異可用直方圖(Histogram) 顯示如下:
若欲產生具有其他機率分佈的亂數,可參考一般機率教科書,或直接使用 MATLAB 的統計工具箱(Statistics Toolbox)。
其他產生各種測試矩陣的指令還有 compan(Companion 矩陣)、gallery(Higham 測試矩陣)、hadamard(Hadamard 矩陣)、hankel(Hankel 矩陣)、invhilb(Hilb 矩陣的反矩陣)、rosser(經典的對稱固有值測試問題)、toeplitz(Toeplitz 矩陣)、wilkinson(Wilkinson 的固有值測試矩陣矩陣)等,讀者可自行由線上支援得到更多的說明。
MATLAB程式設計:入門篇