2011-05-26 50 views
11

在數學中,可以保存中間結果/工作區的局部狀態與Save(.m文件)或DumpSave(.MX文件)。快速至加載的跨平臺替代MX文件(數學)

.m文件是便攜式,但加載速度很慢(大數據)。

.MX文件快速加載,但不是平臺/體系結構之間移植。

有沒有一種辦法以加載它們的方式保存通用Mathematica表達式的速度很快,並且它們可以在平臺之間移植?是否有人試驗過/基準不同的方法來做到這一點?

一個可能的解決方案是保存.m文件(跨平臺),然後在開始在新平臺(一次性操作)上工作時將它們轉換爲.mx文件。有沒有一種完全自動的方式將.m文件轉換爲.mx文件?

+4

官方新聞組中的相關主題:[「Get \ [」file.mx「\]無效」](http://groups.google.com/d/topic/comp.soft-sys.math .mathematica/8ErMYTzcBY4 /討論)。答案[由David Bailey](http://groups.google.com/d/msg/comp.soft-sys.math.mathematica/8ErMYTzcBY4/E5Rk9hlgcsMJ)和[由\t Albert Retey](https:// groups。 google.com/d/msg/comp.soft-sys.math.mathematica/8ErMYTzcBY4/nntc64q-xOcJ)最有幫助(恕我直言)。 「 – 2011-05-26 09:55:17

回答

4
  • 從帖子阿列克謝鏈接:

    str=OpenWrite[file,BinaryFormat->True]; 
    
    BinaryWrite[str,Compress[expr],"TerminatedString"]; 
    
    Close[str]; 
    

    這是不太一樣快,使用MX文件,但它仍然是非常快的。

    大衛貝利


    另一種選擇似乎是WDX(鎢數據交換),我是用 沒有問題的各種機器,並且也似乎 是便攜式的,可以完全像使用MX文件,是二進制文件,有記錄 ,因此我會考慮官方支持。它被 數據pletlet功能使用,所以我想它是合理的性能和 在所有系統上進行了良好測試(假設我的經驗 支持到現在)。

    (摘自答案由Albert Retey,也阿列克謝的鏈接)

但是這些並不爲Save/DumpSave工作時,因爲它不保存的exprFullDefinition,只有明確的價值的expr

+0

」但這不起作用,因爲保存/轉儲保存。「是相當神祕的。你能進一步解釋嗎? – 2011-05-26 11:48:04

+0

@bel現在好嗎? – 2011-05-26 11:55:12

+0

@Szabolcs感謝編輯 – 2011-06-01 14:32:50