我正在使用 Math.Net Numerics 库在 C# 中工作,主要使用Vector<T>
对象Matrix<T>
(进行线性回归、查找特征值等)。大多数情况下我正在使用复数,所以我正在使用(或矩阵等价物),但有时Vector<Complex>
我也需要使用。Vector<Double>
因此,我的问题是,我怎样才能将 aVector<Complex>
转换为 a Vector<Double>
?或者,有没有办法只获取/设置整个向量的实部(或虚部)?我在 C# 中执行此操作,这是一种我相对较新的语言(我主要使用 C/C++ 和 MATLAB),所以如果这看起来像一个简单的问题,我深表歉意。
可能的例子:
Vector<Double> someDoubleVector; // already exists
Vector<Complex> someComplexVector; // ditto
double[] doubleArray; // ditto
double[] anotherDoubleArray; // ditto
someDoubleVector = someComplexVector.GetReal();
或者
someDoubleVector = (Vector<Double>)someComplexVector;
或(设置真实)
someComplexVector.SetReal(someDoubleVector);
或者
someComplexVector.SetReal(doubleArray);
或创建时
Vector<Complex> anotherComplexVector = Vector<Complex>.Build.Dense(Vector<Double> realValues, Vector<Double> imagValues);