(translator=Erison, ChineseSource=Erison-20020713-6\spdiags.html, EnglishSource=c:\matlabr12\help\techdoc\ref\spdiags.html)
MATLAB Function Reference    
spdiags

建構帶狀(band)或對角(diagonal)的稀疏矩陣

Syntax

Description

spdiags 函數可產生 spdiags 函數。依照參數個數的不同,可分為以下四種功能:

[B,d] = spdiags(A) m-by-n 的矩陣 A 取出所有非零的對角元素。Bmin(m,n)-by-p 的矩陣,其裡面每一行為 Ap 個非零對角元素。d 為長度 p 的向量,其裡面整數元素明確說明了 A 的對角元素。

B = spdiags(A,d) 取出由 d 所指明的對角元素。

A = spdiags(B,d,A) B 的每一行取代 d 所指明的對角線位置。其輸出為稀疏矩陣。

A = spdiags(B,d,m,n) B 的每一行放入由 d 所指明的對角線位置而建立 m-by-n 的稀疏矩陣。

Arguments

spdiags 函數可處理三個矩陣,這些矩陣可以多種組合當作輸入及輸出:

A
m-by-n 的矩陣,通常為稀疏矩陣,其非零元素位置在 p 對角線上。
B
min(m,n)-by-p 的矩陣,通常為完全矩陣,其每一行為 A 的對角線。
d
為長度 p 的向量,其裡面整數元素明確說明了 A 的對角元素。

A, B, 及 d 的關係大致如下:

B 的一些元素並不會在上面的迴圈被定義。當 B 為輸入矩陣,它們不會被參考;當 B 為輸出矩陣,則被設為零。

Examples

例一: 這個例子可產生在 n 點上典型第二差異運算子(classic second difference operator)的稀疏三對角線(tridiagonal)表示法。

使其變成 Wilkinson's 測試矩陣:

最後,還原其三個對角線:

例二: 這個例子的矩陣不是正方形的

在此,m = 7, n = 4,p = 3

指令 [B,d] = spdiags(A) 可產生 d = [-3 0 2]'

相反地,指令 spdiags(B,d,7,4) 可產生原來的 A

例三: 這個例子為說明當 B 的每一行比所要取代的對角線還長時,spdiags 如何建立那些對角線。

See Also

diag


 spconvert speye