これは数字書式に関する質問で、先にquestionという非常に特殊なMathematicaの出力をテキストファイルとして取得することに関するものです。Mathematicaでファイルに書き込むときの数値の書式設定
Mathematicaでデータ生成に高精度を頻繁に使用する必要がありますが、視覚化の目的では精度が比較的低いだけです。また、すべてのSymbol名と配列構造をそのまま使用して後で使用できるようにデータを保存したいと考えています。このため私はSave[]
を使っていますが、2つの関連する問題があります。私は実際には0.448799を必要
In[1] := b = SetPrecision[7, 50]; a = Pi/b
Out[1] := 0.44879895051282760549466334046850041202816705705358654585356351318683091518373`50.
In[2] := InputForm @ N[a, 6]
Out[2] := 0.44879895051282760549466334046850041203`6.
:
高い精度が非常に困難であり、余分な数字と私の結果はを取り除くために「汚染します」。
- 場合によっては、精度を示す数値も壊れていて、一般的には精度が不要で、
4.72642
とすれば十分です。4.72642364528438598726943'5.9999999999999999999999
のような値が得られることがあります。
これらの両方がファイルサイズに重大なオーバーヘッドをもたらし、ハードディスクストレージは安価ですが、後でファイルをMathematicaに戻すときにファイルサイズが大きく変わります。
ので、始まる、例えば、aa
、私はこの
aa = {{2.0437`4, 4.7276`4, ...}, ...}
のようなものを読んでいましたテキストファイルを取得するための方法で構築されている不規則な配列に50桁の任意精度数値が含まれていますEDIT:明確にするために、数値の表示や数値の精度の追跡、数値の精度の変更に問題はありません。私が問題を抱えているのは、数値がファイルに書き込まれる方法を制御することです。などN
、NumberForm
、OutputForm
、InputForm
、*Form
を使用
、すべてがSave
で正しく動作しません。そしてSave
は、シンボルと配列の構造体をエクスポートできる唯一のエクスポートオプションです。 Export
とPut*
は、フォーマットをよりよく制御するために使用できますが、シンボルは含まれません(Export
の場合は配列構造も失われます)。
私は精度情報は必要ありませんが、削除することは非常に困難です。私の問題は、ノートブックに何桁の数字が表示されているかではなく、問題はファイルに書き込まれる桁数です。 – Timo
ToExpression [ToString [NumberForm [
数値が浮動小数点数の場合は機能しません。私は 'RealDigits'と' FromDigits'で、あなたが示唆しているものに似た何かをするkludgeに取り組んでいます。 – Timo