问题:是否可以在不评估内容的情况下导入使用DumpSave
保存的MX文件?是否可以在不评估内容的情况下导入MX文件?
让我说明:
让我们创建一个变量,data
:
In[2]:= data = Range[10]
Out[2]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
它可以出口到从MX进口未做任何定义:
In[3]:= [email protected][data, "MX"]
Out[3]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
但是如果我们使用DumpSave
?
In[4]:= DumpSave["data.mx", data]
Out[4]= {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}
(和明确data
)
In[5]:= Clear[data]
在重新导入,则返回什么:
In[6]:= Import["data.mx", {"MX", "HeldExpression"}]
但变量data
再次变为定义,因为如果我们使用Get
。
In[7]:= data
Out[7]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
我没有料想到会得到这样的Hold[data = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]
,即类似于将使用Save
时被写入到一个.m
文件的东西。
也许是技术上无法避免被作出的定义,因为DumpSave
和Get
直接操纵内核态的,而不是写作和阅读的定义可求像Save
呢?这只是一个猜测。
(编辑)请注意:我不是在可导入“保持”的方式进行保存。我已经可以使用Export
。我期待导入以前的DumpSave
d MX文件。
回答看来这是不可能做到这一点,除非MX文件保存到的特别允许。
@Szabolcs我添加了一些代码来说明问题的答案。 – 2012-01-04 19:20:25