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