math.net将Matrix转换为Generic.Matrix <float> </float>

时间:2013-11-12 11:01:08

标签: f# linear-algebra mathdotnet

let v = [| 5.0; 2.0; 3.0; 11.0 |]
let m2 = new DenseMatrix(2, 2, v)
let invm = m2.Inverse()
let invt = m2.Transpose()

此处m2Matrix。但是,invminvtGeneric.Matrix<float>。为什么要转换?

1 个答案:

答案 0 :(得分:4)

很快,因为DenseMatrix.Inverse()DenseMatrix.Transpose()的签名是

DenseMatrix.Inverse: unit -> Matrix<float>
DenseMatrix.Transpose: unit -> Matrix<float>

Matrix是一个抽象类,为任何矩阵提供InverseTranspose方法的通用实现。具体派生子类DenseMatrixSparseMatrixDiagonalMatrix只是根据每个用例优化存储矩阵数据的方式。

你可以上传

let m2 = new DenseMatrix(2, 2, v) :> Matrix<float>

在矩阵创建后使用泛型类型进行操作。 您可能需要查看相关主题Matrix vs DenseMatrix以获取更多详细信息。