Double.Vector和Vector <double>之间的区别

时间:2017-06-09 14:10:05

标签: c# mathnet

我在使用MathNet中的向量时遇到类型问题。 我正在使用 using MathNet.Numerics.LinearAlgebra.Double; 所以所有向量和矩阵都是Double.Vector等类型。 但是,例如,如果我想从矩阵中获取特定行 - &gt;

V.Row(V.RowCount-1);

它返回类型Vector<double>,因此抛出“无法转换”错误:

Vector v = myMatrix.Row(0);

是否有一些Vector<double>Double.Vector转换器或诀窍如何完成?

1 个答案:

答案 0 :(得分:2)

Double.Vector继承了Vector<double>,因此普通类型转换应该有效,例如Vector v = (Vector)myMatrix.Row(0);

但是,由于Math.NET Numerics v3 建议仅使用通用类型Vector<double>)。 API的设计使得通用类型您无需进行任何此类转换或转换。甚至不需要打开MathNet.Numerics.LinearAlgebra.Double命名空间,MathNet.Numerics.LinearAlgebra使用CreateVector静态类创建新向量就足够了,AsArray可以回到如果需要,可以使用原始数组。