NMath是一个适用于全部.NET语言,如C#、Visual Basic、F#和.NET的数学库,它包含了.NET平台上的面向对象数字计算的基础类。咱们将以连载的形式向你们介绍NMath的实用教程。本节展现在NMatht数学库中的矩阵类函数。函数
最新版NMath点击下载spa
NMath矩阵类是在返回IEnumerator对象时,会提供的标准.NET GetEnumerator()方法。对象
例: 教程
代码示例 - C#element
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; }
代码示例 - VBget
Dim Rows As Integer = 13 Dim Cols As Integer = 3 Dim A As New DoubleMatrix(Rows, Cols, 0.0, 0.25) Dim Elements As IEnumerator = A.GetEnumerator() Dim Data(Rows * Cols) As Double Dim I As Integer = 0 While Elements.MoveNext() I += 1 Data(I) = CType(Elements.Current, Double) End While
注意:IEnumerator 上的Current属性会返回集合中的当前对象,因此必须将其强制转换为适当的类型。NMath 还提供自定义strongly-typed示例:IFloatEnumerator, IDoubleEnumerator,IFloatComplexEnumerator和IDoubleComplexEnumerator,这种形式的出现能够避免本身制做时出现的错误。 数学
例:ast
代码示例 - 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 = 13 Dim Cols As Integer = 3 Dim A As New DoubleMatrix(Rows, Cols, 0.0, 0.25) Dim Elements As IDoubleEnumerator = A.GetDoubleEnumerator() Dim Data(Rows * Cols) As Double Dim I As Integer = 0 While Elements.MoveNext() I += 1 Data(I) = Elements.Current ' No need to cast to Double End While