Re: [问题] 关于 数字"123E-10" 的读写

楼主: chungyuandye (养花种鱼数月亮赏星星)   2013-07-15 19:17:00
※ 引述《a29788685 (嘉峰)》之铭言:
: 您好,想请问,
: 我有一个档案txt,里面有XXXE-10之类的数字,
: 意思就是:例如123E-10=123*10^-10的意思,
: 但在mathematica中E会读成自然常数e,
: 因为数字非常多,不可能一个一个改,想请问有没有人有比较好的解决方法?
: 感谢
利用NumberForm来处理科学符号输出
?NumberFOrm
?ExponentFunction
(* 随机资料 *)
test = N@RandomInteger[{0, 10}, {5, 10}]/6000000
(* 如果资料在正负无穷大之间,不使用科学记号,*)
(* 但是对排版来说不方便的原因是小数点的位数不一 *)
TableForm[
Map[NumberForm[#,
ExponentFunction -> (If[-Infinity < # < Infinity, Null, #] &)] &,
test, {2}]]
(* 不取科学记号,每个数字取十位数字,小数点9位,不到9位的补0 *)
TableForm[
Map[NumberForm[#, {10, 9},
ExponentFunction -> (If[-Infinity < # < Infinity, Null, #] &)] &,
test, {2}]]
作者: a29788685 (嘉峰)   2013-07-15 19:20:00
非常感谢您,我试试看!!
作者: leo80042 (嗯嗯啊啊去洗澡)   2013-07-15 19:43:00
chungyuandye老师,你可能看错原po的输入格式了。他的档案是用aE+b的格式存数据的。
作者: a29788685 (嘉峰)   2013-07-15 19:52:00
您好,我发现我的问题可能不是很聪明,我发现我用:f = OpenRead["来源"]然后 data = ReadList[f, {Number}]就可以了,不过现在有另一个问题,就是:输入的会是{{Number1},{Number2}...{Number3}}不知道有没有办法再旁边多加两个我想要的矩阵元例如:{{Number1,i1,j1},{Number2,i2,j2}...}我会在试试,谢谢您的回答
楼主: chungyuandye (养花种鱼数月亮赏星星)   2013-07-16 13:49:00
sorry,不过我试了一下 与459篇一样都可以用Import[file,"Data"] Mathematica会自动判断资料格式
作者: leo80042 (嗯嗯啊啊去洗澡)   2013-07-18 11:45:00
好像是耶。我忘记上次遇到有问题的状况是什么了...
作者: Frobenius (▽.(▽×▽φ)=0)   2013-07-25 23:19:00
?NumberF0rm? 须更正为 NumberForm ^^

Links booklink

Contact Us: admin [ a t ] ucptt.com