Câu hỏi: Có thể nhập tệp MX được lưu bằng cách sử dụng DumpSave
mà không đánh giá nội dung không?Có thể nhập tệp MX mà không đánh giá nội dung không?
Hãy để tôi minh họa:
Hãy tạo một biến, data
:
In[2]:= data = Range[10]
Out[2]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Nó có thể được xuất khẩu sang nhập khẩu từ MX mà không thực hiện bất kỳ định nghĩa:
In[3]:= [email protected][data, "MX"]
Out[3]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Nhưng nếu chúng ta sử dụng DumpSave
?
In[4]:= DumpSave["data.mx", data]
Out[4]= {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
(Và rõ ràng data
)
In[5]:= Clear[data]
On tái nhập, không có gì được trả về:
In[6]:= Import["data.mx", {"MX", "HeldExpression"}]
Nhưng biến data
trở thành định nghĩa một lần nữa, như thể chúng tôi đã sử dụng Get
.
In[7]:= data
Out[7]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
tôi dự kiến sẽ có để có được một cái gì đó giống như Hold[data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]
, ví dụ: một cái gì đó tương tự như những gì sẽ được ghi vào một tập tin .m
khi sử dụng Save
.
Có lẽ đó là kỹ thuật không thể tránh được những định nghĩa được thực hiện vì DumpSave
và Get
trực tiếp thao tác các nhà nước hạt nhân thay vì viết và đọc một định nghĩa evaluatable như Save
không? Đây chỉ là một phỏng đoán.
(chỉnh sửa) xin lưu ý: Tôi không cố gắng để tiết kiệm trong một cách mà có thể được nhập khẩu "tổ chức". Tôi có thể làm điều đó bằng cách sử dụng Export
. Tôi đang tìm cách nhập tệp DumpSave
d MX trước đó.
trả lời Có vẻ nó là không thể làm được điều này trừ khi file MX đã được lưu vào đặc biệt cho phép nó.
@Szabolcs tôi đã thêm một số mã để minh họa cho câu trả lời. –