我在 MathNet 中使用向量时遇到类型问题。
我在用着
using MathNet.Numerics.LinearAlgebra.Double;
所以所有向量和矩阵都是 Double.Vector
类型ETC。
但例如,如果我想从矩阵中获取特定行 ->
V.Row(V.RowCount-1);
它返回类型 Vector<double>
,所以这会抛出“无法转换”错误:
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
命名空间,MathNet.Numerics.LinearAlgebra
使用 CreateVector
时就足够了用于创建新向量的静态类,以及 AsArray
如果需要,返回原始数组。
关于c# - Double.Vector 和 Vector<double> 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459972/