Double.Vector 和 Vector<double> 之间的区别
Difference between Double.Vector and Vector<double>
我在 MathNet 中处理向量时遇到类型问题。
我在用着
using MathNet.Numerics.LinearAlgebra.Double;
所以所有的向量和矩阵都是类型 Double.Vector
等等。
但是例如,如果我想从矩阵中获取特定行 ->
V.Row(V.RowCount-1);
它 returns 类型 Vector<double>
,所以这会抛出 "cant convert" 错误:
Vector v = myMatrix.Row(0);
是否有一些 Vector<double>
到 Double.Vector
的转换器或技巧?
Double.Vector
继承了 Vector<double>
,所以正常的类型转换应该可以工作,例如Vector v = (Vector)myMatrix.Row(0);
.
但是,自 Math.NET Numerics v3 起,建议仅使用泛型类型 (Vector<double>
)。 API 的设计使得对于泛型类型,您永远不必进行任何此类转换或强制转换。甚至不需要打开 MathNet.Numerics.LinearAlgebra.Double
命名空间,使用 CreateVector
静态 class 创建新向量时 MathNet.Numerics.LinearAlgebra
就足够了, AsArray
返回原始数组(如果需要)。
我在 MathNet 中处理向量时遇到类型问题。
我在用着
using MathNet.Numerics.LinearAlgebra.Double;
所以所有的向量和矩阵都是类型 Double.Vector
等等。
但是例如,如果我想从矩阵中获取特定行 ->
V.Row(V.RowCount-1);
它 returns 类型 Vector<double>
,所以这会抛出 "cant convert" 错误:
Vector v = myMatrix.Row(0);
是否有一些 Vector<double>
到 Double.Vector
的转换器或技巧?
Double.Vector
继承了 Vector<double>
,所以正常的类型转换应该可以工作,例如Vector v = (Vector)myMatrix.Row(0);
.
但是,自 Math.NET Numerics v3 起,建议仅使用泛型类型 (Vector<double>
)。 API 的设计使得对于泛型类型,您永远不必进行任何此类转换或强制转换。甚至不需要打开 MathNet.Numerics.LinearAlgebra.Double
命名空间,使用 CreateVector
静态 class 创建新向量时 MathNet.Numerics.LinearAlgebra
就足够了, AsArray
返回原始数组(如果需要)。