Stats

Popular Posts

Followers

Mathematica 教學 數字匯出格式 0.0000000E+00

戴忠淵 於 2013年7月26日星期五 上午12:38 發表

作者TTLLIU (kerker) 看板Mathematica 標題數字彙出格式 0.0000000E+00 時間Thu Jul 25 21:48:40 2013 最近在使用mathematica + 別人寫的fortran做一些計算 中間的橋樑是txt檔案 (匯入/匯出) 不過問題來了 我目前已知可用: ScientificForm[t1[[1,2]],{7,7},NumberFormat->(Row[{#1,"E",#3}]&)] 輸出 4.971882E-5 的格式 (t1是我的Array) 但有辦法指定寫入txt檔時的格式嗎? 以上面的數字為例 我希望寫入txt檔的樣子為 4.9718820E-05 (小數點前1位,小數點後七位,次方正副號+兩位數字) 也就是說遇到0的時後,上面的code會給出 0.E 的格式 但我想要統一寫成 0.0000000E+00 請問有什麼好方法嗎? P.S. 1. 前面有一篇類似的問題,不過相關討論主要是import number 2. 我寫入txt檔用的指令是 WriteString -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.82.116

t1=RandomReal[{0,1},{10,2}]/1000000;
t1[[2,1]]=0;

t2=Map[If[#==0,"0.0000000E+00",
ToString@ScientificForm[#,{8,7},
NumberFormat->(ToString@NumberForm[1*ToExpression[#1],{8,7}]<>"E" <>
If[-10<1*ToExpression[#3]<0,"-0"<>
StringReplace[ToString[-1*ToExpression[#3]],"."->""],#3]&)]]&,t1,{2}]

Export["~/test.dat",t2]


Tags: , ,

讀者回應 ( 0 意見 )

發佈留言

Please leave your name and tell me what you thought about this site. Comments, suggestions and views are welcomed.

如果這篇文章對你有幫助,那請留個訊息給我~