2016-09-01 6 views
2

私はここでは例としてthis answerから次のコードスニペットをコピーします。Nemo.jlの行列を通常のJulia Arrayに変換しますか?

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

答えて

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) 
+1

私は、彼らがこれらのようないくつかの変換メソッドを追加することネモの開発者にお勧めします。 –

+0

@JeffBezanson質問にリンクしているgithubに問題があります。 – becko

関連する問題