将矩阵从Nemo.jl转换为普通的Julia数组?

时间:2016-09-01 15:19:24

标签: arrays julia

我在此处复制this answer中的以下代码段作为示例:

using Nemo   # install with Pkg.add("Nemo")

S = MatrixSpace(ZZ, 3, 4)
mm = rand(-10:10,3,4)
m = S(mm)
(bmat,d) = nullspace(m)

现在bmat的类型为Nemo.fmpz_mat。我想将它转换为普通的朱莉娅Matrix{Int}。我试过了Matrix{Int}(bmat),但它没有用。

另请参阅:https://github.com/wbhart/Nemo.jl/issues/57

1 个答案:

答案 0 :(得分:3)

我定义了自己的convert

function Base.convert(::Type{Matrix{Int}}, x::Nemo.fmpz_mat)
    m,n = size(x)
    mat = Int[x[i,j] for i = 1:m, j = 1:n]
    return mat
end

Base.convert(::Type{Matrix}, x::Nemo.fmpz_mat) = convert(Matrix{Int}, x)