.NET函數庫 NMath提供了各類各樣的結構化稀疏矩陣類型。結構性稀疏矩陣能夠比通常的矩陣更有效地被操縱,由於全部的元素並不須要被存儲。html
NMath包含的類以下表示:函數
三角矩陣spa
爲了提升效率,只對上三角矩陣和下三角矩陣分別保存。code
對稱和Hermite矩陣htm
對於對稱和Hermite矩陣,NMath只保存上三角。索引
帶狀矩陣ci
爲了效率,零元素之外的帶寬矩陣沒有被保存。get
三對角矩陣it
三對角矩陣的主對角線,超對角線,和次對角以外的0元素,NMath不保存。table
接下來爲你們帶來一個用 FloatComplexTriDiagMatrix 類來建立一個三對角矩陣單精度複數的代碼示例:
1
2
3
|
int
rows = 8; cols = 8;
FloatComplexTriDiagMatrix A =
new
FloatComplexTriDiagMatrix( rows, cols );
|
在三角矩陣中使用 Diagonal() 可以快速的爲其設定主對角線,超對角線,和次對角:
1
2
3
4
5
6
7
8
9
10
11
12
|
A.Diagonal( -1 ).Set( Slice.All, 1 );
A.Diagonal( 0 ).Set( Slice.All, 2 );
A.Diagonal( 1 ).Set( Slice.All, 3 );
Console.WriteLine(
"A = {0}"
, A.ToString() );
// A = 8x8 [ (2,0) (3,0) (0,0) (0,0) (0,0) (0,0) (0,0) (0,0)
// (1,0) (2,0) (3,0) (0,0) (0,0) (0,0) (0,0) (0,0)
// (0,0) (1,0) (2,0) (3,0) (0,0) (0,0) (0,0) (0,0)
// (0,0) (0,0) (1,0) (2,0) (3,0) (0,0) (0,0) (0,0)
// (0,0) (0,0) (0,0) (1,0) (2,0) (3,0) (0,0) (0,0)
// (0,0) (0,0) (0,0) (0,0) (1,0) (2,0) (3,0) (0,0)
// (0,0) (0,0) (0,0) (0,0) (0,0) (1,0) (2,0) (3,0)
// (0,0) (0,0) (0,0) (0,0) (0,0) (0,0) (1,0) (2,0)]
|
索引就會把它看成爲通常的矩陣而運行:
1
|
FloatComplex c = A[7,0];
|
還支持使用索引的值設置對角矩陣中對角線元素:
1
|
A[2,1] =
new
FloatComplex( 2, -1 );
|