MATLAB矩陣的表示
1.矩陣的建立
-
1.1 直接輸入創建
最簡單的建立矩陣的方法是從鍵盤直接輸入矩陣的元素。具體方法如下:將矩陣的元素用方括號括起來,按矩陣行的順序輸入各元素,同一行的各元素之間用空格或逗號分隔,不同行的元素之間用分號分隔。
-
1.2 利用已經創建好的矩陣組成
大矩陣可由已建好的小矩陣拼接而成。例如:
-
1.3 生成特殊矩陣的函數
函數 | 特殊矩陣 |
---|---|
A.‘ | 矩陣轉置 |
inv(A) | 矩陣求逆 |
sparse(A) | 稀疏矩陣 |
full(A) | 將稀疏矩陣轉換爲普通矩陣 |
eye(n) | n階單位矩陣 |
zeros(m,n) | m×n的零矩陣 |
ones(m,n) | m*n的元素全爲1的矩陣 |
rand(m,n) | m*n的隨機矩陣,元素在0-1間均勻分佈 |
randn(m,n) | m*n的正態隨機矩陣 |
randperm(n) | 生成1-n之間的整數隨機排列 |
magic(n) | n階魔方矩陣 |
hilb(n) | n階希爾伯特矩陣 |
pascal(n) | n階帕斯卡矩陣 |
flipud(A) | 將矩陣上下翻轉 |
fliplr(A) | 將矩陣左右翻轉 |
rot90(A,k) | 將矩陣旋轉90°的k倍,k爲1時可省略 |
diag(A,k) | 從第k條對角線,獲取矩陣的對角線元素,k可省略 |
tril(A,k) | 從第k條對角線開始生成下三角矩陣,k可省略 |
triu(A,k) | 從第k條對角線開始生成上三角矩陣,k可省略 |
2.矩陣的引用
- 1.矩陣元素的引用方式
MATLAB通過下標引用矩陣的元素,A(i,j)表示矩陣第i行第j列的元素。
也可以採用矩陣元素的序號來引用矩陣元素。矩陣元素的序號就是相應元素在內存中的排列順序。在MATLAB中,矩陣元素按列存儲,先第一列,再第二列,依次類推。
顯然,序號(Index)與下標(Subscript )是一一對應的,以m×n矩陣A爲例,矩陣元素A(i,j)的序號爲(j-1)*m+i。 - 2.獲得子矩陣
① A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。
② A(i:i+m,:)表示取A矩陣第i~i+m行的全部元素;A(:,k:k+m)表示取A矩陣第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第i~i+m行內,並在第k~k+m列中的所有元素。
③A(:)將矩陣A每一列元素堆疊起來,成爲一個列向量,而這也是MATLAB變量的內部儲存方式。
還可利用一般向量和end運算符來表示矩陣下標,從而獲得子矩陣。end表示某一維的末尾元素下標。 - 3.利用空矩陣刪除矩陣的元素
在MATLAB中,定義[ ]爲空矩陣。給變量X賦空矩陣的語句爲X=[ ]。
注意,X=[]與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在於工作空間中,只是維數爲0。
3.矩陣的函數
1. 矩陣的構造與操作
zeros 生成元素全爲0的矩陣
ones 生成元素全爲1的矩陣
eye 生成單位矩陣
rand 生成隨機矩陣
randn 生成正態分佈隨機矩陣
sparse 生成稀疏矩陣
full 將稀疏矩陣化爲普通矩陣
diag 對角矩陣
tril 矩陣的下三角部分
triu 矩陣的上三角部分
flipud 矩陣上下翻轉
fliplr 矩陣左右翻轉
2. 矩陣運算函數
norm 矩陣或向量範數
normest 稀疏矩陣(或大規模矩陣)的2-範數估計
rank 矩陣的秩
det 方陣的行列式
trace 方陣的跡
null 求基礎解系(矩陣的零空間)
orth 正交規範化
rref 矩陣的行最簡形(初等行變換求解線性方程組)
subspace 計算兩個子空間的夾角
3. 與線性方程有關的矩陣運算函數
inv 方陣的逆
cond 方陣的條件數
condest 稀疏矩陣1-範數的條件數估計
chol 矩陣的Cholesky分解(矩陣的平方根分解)
cholinc 稀疏矩陣的不完全Cholesky分解
linsolve 矩陣方程組的求解
lu 矩陣的LU分解
ilu 稀疏矩陣的不完全LU分解
luinc 稀疏矩陣的不完全LU分解
qr 矩陣的正交三角分解
pinv 矩陣的廣義逆
4. 與特徵值或奇異值有關的矩陣函數
eig 方陣的特徵值與特徵向量
svd 矩陣的奇異值分解
eigs 稀疏矩陣的一些(默認6個)最大特徵值與特徵向量
svds 矩陣的一些(默認6個)最大奇異值與向量
hess 方陣的Hessenberg形式分解
schur 方陣的Schur分解