原創(chuàng)|其它|編輯:郝浩|2012-12-28 13:41:48.000|閱讀 435 次
概述:.NET函數(shù)庫NMath提供了各種各樣的結(jié)構(gòu)化的稀疏矩陣類型。結(jié)構(gòu)性稀疏矩陣可以比一般的矩陣更有效地被操縱,因?yàn)樗械脑夭⒉恍枰淮鎯?chǔ)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
.NET函數(shù)庫 NMath提供了各種各樣的結(jié)構(gòu)化稀疏矩陣類型。結(jié)構(gòu)性稀疏矩陣可以比一般的矩陣更有效地被操縱,因?yàn)樗械脑夭⒉恍枰淮鎯?chǔ)。
NMath包含的類如下表示:
為了提高效率,只對(duì)上三角矩陣和下三角矩陣分別保存。
對(duì)于對(duì)稱和Hermite矩陣,NMath只保存上三角。
為了效率,零元素以外的帶寬矩陣沒有被保存。
三對(duì)角矩陣的主對(duì)角線,超對(duì)角線,和次對(duì)角之外的0元素,NMath不保存。
接下來為大家?guī)硪粋€(gè)用 FloatComplexTriDiagMatrix 類來創(chuàng)建一個(gè)三對(duì)角矩陣單精度復(fù)數(shù)的代碼示例:
int rows = 8; cols = 8; FloatComplexTriDiagMatrix A = new FloatComplexTriDiagMatrix( rows, cols );
在三角矩陣中使用 Diagonal() 能夠快速的為其設(shè)定主對(duì)角線,超對(duì)角線,和次對(duì)角:
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)]
索引就會(huì)把它當(dāng)作為一般的矩陣而運(yùn)行:
FloatComplex c = A[7,0];
還支持使用索引的值設(shè)置對(duì)角矩陣中對(duì)角線元素:
A[2,1] = new FloatComplex( 2, -1 );
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)