我在此处复制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)
,但它没有用。
答案 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)