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 返回原始数组(如果需要)。