什麼是將Mathematica表達式無損地轉換爲字符串(保存在內存中的字符串,不會導出到文件中)的正確方法?以文本形式保留Mathematica表達式
我要尋找一個文字表述的是
- 將保留所有信息,包括保持特殊的(也可能是原子)的物體,如
SparseArray
,Graph
,Dispatch
,CompiledFunction
等完好。例如。通過這種表示循環一個SparseArray
應該保持稀疏(而不是將其轉換爲正常列表)。 - 是比較快的循環(來回轉換)。
是ToString[expr, FullForm]
夠了嗎?那麼ToString[expr, InputForm]
?
注1:在嘗試解決Graph
中偶爾發生內部表示損壞的一些錯誤時出現此問題。但我有興趣回答上面的一般問題。
注2:Save
肯定會這樣做,但它會寫入文件(可能可以使用流來解決此問題),並且它只寫入與符號關聯的定義。
我不明白你在做什麼。你只是想「保存」一個表達式來恢復,或者你要處理的字符串? – 2011-05-11 13:08:44
只需保存並恢復。在這個特殊情況下,可以解決像https://groups.google.com/d/topic/comp.soft-sys.math.mathematica/RRsfrHCjwRM/discussion這樣的錯誤。列昂尼德的解決方案可能是最好的。 – Szabolcs 2011-05-11 13:11:58
該錯誤看起來很糟糕。保存到另一個符號是否工作? 'jjHold = jj; IsomorphicGraphQ [jj,...' – 2011-05-11 13:16:29