我最近开始使用 MathNET 库,它很棒。我正在大量使用矩阵和向量。该库运行良好,但我发现我必须一直使用强制转换;这方面的一个例子是:
using MathNet.Numerics.LinearAlgebra.Double;
...
Matrix P = (DenseMatrix)(T.Multiply(P.TransposeAndMultiply(T)) +
R.Multiply(Q.TransposeAndMultiply(R)));
或者
using MathNet.Numerics.LinearAlgebra.Double;
...
Vector a, v, y;
Matrix F, K, Z;
...
Matrix FI = (DenseMatrix)F.Inverse();
if (FI != null)
K = (DenseMatrix)K.Multiply(FI);
...
v = (DenseVector)(y - Z.Multiply(a));
为什么我必须使用 ( (DenseMatrix)
/ (DenseVector)
) 进行投射,有没有办法为每个操作都这样做?