2015-06-23 18 views
6

Tôi đã thấy rằng Julia diễn giải một cách chính xác các tệp "MAT" có cấu trúc trong chúng được đọc dưới dạng từ điển mà không có vấn đề gì. Bây giờ tôi đã tạo một từ điển của riêng tôi, có cấu trúc sau đâyCách chính xác để lưu và truy xuất từ ​​điển trong Julia là gì?

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

trên mỗi mục nhập. Tôi có thể lưu nó với writeddlm và nó tạo ra một tập tin văn bản bảng rất trật tự, cách nhau bằng các tab (\t), nhưng sau đó tôi không thể lấy nó mà không làm rất nhiều phân tích cú pháp. Nếu tôi sử dụng readdlm tôi nhận được một loạt các loại Bất kỳ, với cấu trúc rất unconfortable ở mỗi dòng

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

Đó là, hai cột Strings có chứa dấu hiệu như '"''['.

+1

Sẽ rất hữu ích nếu bạn hiển thị mã thực tế mà bạn đã sử dụng để tạo ra các kết quả này. – Simon

+3

Bạn chắc chắn có thể lưu lại tệp MAT, mặc dù được khuyên dùng bằng gói HDF5 và mô-đun con JLD. JLD được viết để lưu trữ các kiểu dữ liệu tùy ý của Julia (thậm chí là các kiểu dữ liệu do người dùng xác định). – spencerlyon2

+0

Xem thêm [Cách lưu một mảng NxNxN (hoặc Ma trận) vào một tệp trong Julia (hoặc Python)?] (Http://stackoverflow.com/questions/30926050/how-to-save-an-nxnxn-array- hoặc ma trận-thành-một-tệp-trong-julia-hoặc-python/31205562 # 31205562) – SalchiPapa

Trả lời

4

Bạn có thể sử dụng JLD (Julia dữ liệu) submodule bao gồm trong gói 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"] 

lợi thế của mô-đun JLD là nó giữ gìn chính xác thông tin loại của mỗi biến.

Các vấn đề liên quan