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


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()

这里m2是一个Matrix.但是,invminvt Generic.Matrix<float>.为什么要进行这种转换?

简而言之,因为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>

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

相关内容

  • 没有找到相关文章