概述
2019独角兽企业重金招聘Python工程师标准>>>
.NET函数库 NMath提供了各种各样的结构化稀疏矩阵类型。结构性稀疏矩阵可以比一般的矩阵更有效地被操纵,因为所有的元素并不需要被存储。
NMath包含的类如下表示:
三角矩阵
为了提高效率,只对上三角矩阵和下三角矩阵分别保存。
对称和Hermite矩阵
对于对称和Hermite矩阵,NMath只保存上三角。
带状矩阵
为了效率,零元素以外的带宽矩阵没有被保存。
三对角矩阵
三对角矩阵的主对角线,超对角线,和次对角之外的0元素,NMath不保存。
接下来为大家带来一个用 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 );
|
转载于:https://my.oschina.net/u/2003526/blog/392015
最后
以上就是拉长宝贝为你收集整理的NMath应用教程:如何实现结构化稀疏矩阵类的全部内容,希望文章能够帮你解决NMath应用教程:如何实现结构化稀疏矩阵类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复