2
我在C#中使用Math.Net數字庫,主要使用Vector<T>
和Matrix<T>
對象(進行線性迴歸,查找特徵值等)。大多數情況下,我正在處理複雜的數字,所以我使用Vector<Complex>
(或相當於矩陣),但我有時也需要使用Vector<Double>
。因此,我的問題是,如何將Vector<Complex>
投射到Vector<Double>
?或者,有沒有辦法只獲取/設置整個Vector的真實(或虛構)部分?我在C#中這是一個我相對較新的語言(主要是使用C/C++和MATLAB),所以我很抱歉,如果這看起來像一個簡單的問題。如何將Vector <Complex>投射到Vector <Double>?
可能的實例:
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);
注意,這是很常見的,我們應該考慮直接將這種擴展方法添加到Math.NET Numerics中。 – 2015-01-21 01:07:47
完美!這正是我想要的。謝謝。 – WHM 2015-01-21 17:15:28