本章前述各節中,適用於稀疏矩陣的相關指令,可列表彙整如下:
指令 功能 B = sparse(A) 將一個完全矩陣 A 轉換成稀疏矩陣 B B = sparse(i, j, s, m , n ) 直接產生一個稀疏矩陣 B,其中 :
- i 是列索引
- j 是行索引
- s 是非零元素形成的向量
- m 是 B 的列維度
- n 是 B 的行維度
- i、j、s 都是長度相同的向量
B = spdiags(D, p, m, n) 由矩陣 D 的對角線元素來建構一個稀疏矩陣 B,其中:
- D 的每一個直行代表矩陣的對角線向量
- p 代表對角線的位置(0 代表主對角線,-1 代表向下位移一單位的次對角線,1 代表向上位移一單位的次對角線,依此類推)
- m 與 n 則分別代表矩陣的列維度與行維度
full(B) 以完全矩陣來顯示矩陣 B spconvert(C) 將一個 m×3 的矩陣 C,轉換成稀疏矩陣,其中:
- 第一直行代表列索引
- 第二直行代表行索引
- 第三直行則是非零的元素值
nnz(C) 傳回稀疏矩陣 C 的非零元素個數 nonzeros(C) 傳回稀疏矩陣 C 的所有非零元素形成的行向量 nzmax(C) 傳回稀疏矩陣 C 的目前可容納非零元素個數的最大值,當nnz > nzmax 時,MATLAB 會動態調增配置記憶體給 nzmax,以儲存新增的非零元素 spy(C) 觀看稀疏矩陣 C 的非零元素分佈情況 gplot(A, xy, '-o'); 畫出無向圖(Undirected Graph) treeplot(nodes) 畫出樹狀圖
MATLAB程式設計:進階篇