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

标签 c# math.net

我在 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/

相关文章:

c# - MVVM 单个对象上的鼠标悬停事件

c# - 求解具有约束结果的最小二乘矩阵

c# - MathNET 矩阵转换

c# - 使用 MathNet Symbolics 提取常用术语

c# Mathnet Numerics -- 获取非零稀疏矩阵元素的索引

c# - 为什么 int 数组的最大大小小于 Int32.MaxValue?

c# - Windows azure Worker Role 每周发送电子邮件

c# - 如何将列表从 View 发送到 Controller MVC

c# - 如何使用 MSBuild 引用不同版本的 dll

c# - 关于使用Hadoop.WebHDFSClient时文件创建的403,尽管能够在HDFS中创建文件夹