.NET数学库NMath使用教程——矩阵类函数

NMath是NMath套包中基础的.NET函数库,它包含了复数类,通用向量与矩阵类,结构化稀疏矩阵类与因式分解,通用稀疏矩阵类与因式分解,通用矩阵分解,最小二乘解等内容。本节展示NMath数学库中的矩阵类函数。

NMath是一个适用于所有.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。我们将以连载的形式向大家介绍NMath的实用教程。本节展示在NMatht数学库中的矩阵类函数。

最新版NMath


NMath矩阵类是在返回IEnumerator对象时,会提供的标准.NET GetEnumerator()方法。

例:    

代码示例 – C#

int rows = 13,cols = 3; var A = new DoubleMatrix(rows,cols,0,.25); IEnumerator elements = A.GetEnumerator(); var data = new double [rows * cols]; i = 0; while(elements.MoveNext()){   data [i ++] =(double)elements.Current; }

代码示例 – VB

Dim Rows As Integer = 13Dim Cols As Integer = 3Dim A As New DoubleMatrix(Rows, Cols, 0.0, 0.25)Dim Elements As IEnumerator = A.GetEnumerator()Dim Data(Rows * Cols) As DoubleDim I As Integer = 0While Elements.MoveNext()  I += 1  Data(I) = CType(Elements.Current, Double)End While

    注意:IEnumerator 上的Current属性会返回集合中的当前对象,所以必须将其强制转换为适当的类型。NMath 还提供自定义strongly-typed示例:IFloatEnumerator, IDoubleEnumerator,IFloatComplexEnumerator和IDoubleComplexEnumerator,这种形式的出现可以避免自己制作时出现的错误。   

例:

代码示例 – C# 

int rows = 13, cols = 3;var A = new DoubleMatrix( rows, cols, 0, .25 );IDoubleEnumerator elements = A.GetDoubleEnumerator();var data = new double[rows*cols];i = 0;while ( elements.MoveNext() ){  data[i++] = elements.Current;       // No need to cast to double}

  代码示例 – VB

Dim Rows As Integer = 13Dim Cols As Integer = 3Dim A As New DoubleMatrix(Rows, Cols, 0.0, 0.25)Dim Elements As IDoubleEnumerator = A.GetDoubleEnumerator()Dim Data(Rows * Cols) As DoubleDim I As Integer = 0While Elements.MoveNext()  I += 1  Data(I) = Elements.Current ' No need to cast to DoubleEnd While

.jpg   

dd2629f30d553d56ccaf7164fdcb784e-sz_28327.webp.jpg

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月1日
下一篇 2019年6月1日

相关推荐

发表回复

登录后才能评论