首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MathNet.Numerics操作返回类型

MathNet.Numerics操作返回类型
EN

Stack Overflow用户
提问于 2013-10-29 16:22:06
回答 1查看 898关注 0票数 0

我正在使用MathsNet.Numerics库。我想在复杂向量上做运算,也就是

using MathNet.Numerics.LinearAlgebra.Complex

这给了我Vector作为MathNet.Numerics.LinearAlgebra.Generic.Vector<T>的复杂版本

然而,Vector上的操作不返回可分配给Vector的对象

代码语言:javascript
复制
Complex[] complexData = new Complex[n]
... fill data, fft etc ...
Vector vectorReference = new DenseVector(complexData);
vectorReference = vectorReference.Conjugate(); // Error.

错误CS0266:无法隐式将“MathNet.Numerics.LinearAlgebra.Generic.Vector<System.Numerics.Complex>”类型转换为“MathNet.Numerics.LinearAlgebra.Complex.Vector

为什么在Vectors (例如ConjugatePointwiseMultiply)上操作的方法的返回值不能分配给Vectors?

EN

回答 1

Stack Overflow用户

发布于 2013-12-04 16:21:27

类型层次结构:Vector<T> <- Complex.Vector <- Complex.DenseVector

.Net不支持在重写方法时专门化返回类型(协方差),因此我们在技术上不能修改Conjugate以返回Complex.Vector,甚至不能在派生类型中返回Complex.DenseVector

通常,我们建议只在字段和方法参数中使用泛型类型(即Vector<Complex>) --或者当您打算重用变量时。在Math.NET数字v3中,这已经被简化了,因此几乎不需要使用实际的实现类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19663833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档