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