相关疑难解决方法(0)

在Mathematica中写入文件时格式化数字

这是关于数字格式的这个问题的延续,并且与我之前关于获得非常具体的Mathematica输出到文本文件的问题有关.

我经常不得不在Mathematica中使用高精度来生成数据,但只需要相对较低的精度来实现可视化.我还希望存储数据以供以后使用,所有符号名称和数组结构都保持不变.为此,我一直在使用Save[],但有两个相关的问题.

  1. 高精度"污染"我的结果与多余的数字很难摆脱:

    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.
    
    Run Code Online (Sandbox Code Playgroud)

    我真的只需要0.448799.

  2. 有时甚至指示精度的数字也会被破坏,我得到的值就像4.72642364528438598726943'5.9999999999999999999999我通常不需要精度4.72642就足够了.

这两者都会给文件大小带来很大的开销,虽然硬盘存储很便宜,但是后来将文件加载回Mathematica时,文件大小会产生巨大的差异.

因此,从例如aa包含不规则数组中的50位任意精度数字开始,是否有一种内置方式可以让我获得一个文本文件来读取这样的内容

aa = {{2.0437`4, 4.7276`4, ...}, ...}
Run Code Online (Sandbox Code Playgroud)

编辑:为了澄清,我没有显示数字或跟踪数字的精确度或更改数字的精度问题.我遇到的问题是控制如何将数字写入文件.

使用N,NumberForm,OutputForm,InputForm,*Form,等,都不能正常工作与Save.并且Save是我能找到的唯一导出符号和数组结构的导出选项.Export并且Put*可以用于更好地控制格式,但它们不包括符号(并且在Export数组结构的情况下也丢失).

precision wolfram-mathematica

6
推荐指数
1
解决办法
5433
查看次数

标签 统计

precision ×1

wolfram-mathematica ×1