2015-06-23 12 views
6

Ho visto che Julia interpreta in modo appropriato i file "MAT" che contengono strutture che vengono lette come dizionari senza problemi. Ora ho creato un dizionario tutto mio, che ha la seguente strutturaQual è il modo corretto per salvare e recuperare i dizionari in Julia?

(String, String)=> [ Int, Int, Int] 

su ogni voce. Posso salvarlo con writeddlm e produce un file di testo tabellare molto ordinato , separato da schede (\t), ma non riesco a recuperarlo senza fare un sacco di analisi. Se uso readdlm ottengo un array di tipo qualsiasi, con la struttura molto scomodo ogni riga

"(\"Bla bla\", \"tururu\")"  "[a, b, c]" 

Cioè, due colonne di stringhe che contengono segni quali '"' e '['.

+1

Sarebbe utile se hai mostrato il codice effettivo che hai usato per produrre questi risultati. – Simon

+3

Si potrebbe sicuramente salvare in un file MAT, anche se è consigliabile utilizzare il pacchetto HDF5 e il sottomodulo JLD. JLD è stato scritto per archiviare tipi di dati arbitrari di Julia (anche quelli definiti dall'utente). – spencerlyon2

+0

Vedere anche [Come salvare un array NxNxN (o Matrix) in un file in Julia (o Python)?] (Http://stackoverflow.com/questions/30926050/how-to-save-an-nxnxn-array- o-matrix-in-un-file-in-julia-o-python/31205562 # 31205562) – SalchiPapa

risposta

4

È possibile utilizzare il (Julia dati) modulo JLD incluso nella confezione HDF5:

Pkg.add("HDF5") 
using HDF5, JLD 
d = Dict(
    ("a", "b") => [1, 2, 3], 
    ("c", "d") => [4, 5, 6], 
    ("e", "f") => [7, 8, 9] 
) 
save("data.jld", "data", d) 
load("data.jld")["data"] 

il vantaggio del modulo JLD è che conserva la esatto informazioni tipo di ciascuna variabile.