彩票走势图

NMath应用教程:如何实现结构化稀疏矩阵类

原创|其它|编辑:郝浩|2012-12-28 13:41:48.000|阅读 390 次

概述:.NET函数库NMath提供了各种各样的结构化的稀疏矩阵类型。结构性稀疏矩阵可以比一般的矩阵更有效地被操纵,因为所有的元素并不需要被存储。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

.NET函数库 NMath提供了各种各样的结构化稀疏矩阵类型。结构性稀疏矩阵可以比一般的矩阵更有效地被操纵,因为所有的元素并不需要被存储。

NMath包含的类如下表示:

  • 三角矩阵

为了提高效率,只对上三角矩阵和下三角矩阵分别保存。

  • 对称和Hermite矩阵

对于对称和Hermite矩阵,NMath只保存上三角。

  • 带状矩阵

为了效率,零元素以外的带宽矩阵没有被保存。

  • 三对角矩阵

三对角矩阵的主对角线,超对角线,和次对角之外的0元素,NMath不保存。

接下来为大家带来一个用 FloatComplexTriDiagMatrix 类来创建一个三对角矩阵单精度复数的代码示例:

int rows = 8; cols = 8;
FloatComplexTriDiagMatrix A =
  new FloatComplexTriDiagMatrix( rows, cols );

在三角矩阵中使用 Diagonal() 能够快速的为其设定主对角线,超对角线,和次对角:

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)]

索引就会把它当作为一般的矩阵而运行:

FloatComplex c = A[7,0];

还支持使用索引的值设置对角矩阵中对角线元素:

A[2,1] = new FloatComplex( 2, -1 );

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP