我在使用MathNet中的向量时遇到类型问题。
我正在使用
using MathNet.Numerics.LinearAlgebra.Double;
所以所有向量和矩阵都是Double.Vector
等类型。
但是,例如,如果我想从矩阵中获取特定行 - >
V.Row(V.RowCount-1);
它返回类型Vector<double>
,因此抛出“无法转换”错误:
Vector v = myMatrix.Row(0);
是否有一些Vector<double>
到Double.Vector
转换器或诀窍如何完成?
答案 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
可以回到如果需要,可以使用原始数组。