2016-11-19 41 views
-2

我使用的Fortran 95,現在我面對如下問題:如何組織從不同的數據文件的數據用Fortran

  • 我有8個數據文件與4列,每列一個,它們是由其他程序產生(每個文件包含不同組初始條件的微分方程的解)。
  • 第四列是我的x變量,第二列是我的f(x)
  • 所以,我想要的是創建一個新的文件與9列(其中x第一個f(x)其他列中的每個文件)。
  • 但是,每個文件對於x(及其各自的f)具有不同的值,如1.10,1.30和1.40中的一個,而其他中的1.15,1.25和1.42。
  • 因此,我可以帶一個x中的「樂隊」,比如[1.00; 1.20],然後在我的新文件中寫入這個平均值作爲x,然後在其下運行f(x)

但我無法管理如何做到這一點。

+0

從你的標籤判斷,你想用gnuplot來繪製你的數據?爲什麼不像這樣繪製每個文件:'plot'file1.dat'u 4:2'? – 2016-11-19 22:25:14

+0

是的,我想繪製,但我也必須在其他程序中輸入fs爲相同的xs ... – atMalkyor

+2

它似乎要使用插值爲所有數據集提供相同的x-vals。直到你有一些你遇到麻煩的代碼時,這才真正超出了本網站的範圍。 – agentp

回答

1

我會嘗試用smooth csplines選擇到一個臨時文件,繪製文件:

set format x "%10.3f" 
set format y "%10.3f" 

set xrange [...] 
set samples ... 

set table "temp1.dat" 
plot 'file1.dat' using 4:2 smooth csplines 
unset table 

這工作,如果你能與樣條插值生活。無法以csv格式打印線性插值點。你可能想學習一些Fortran(詢問是否需要它來進行進一步的研究)來進行線性插值。或者其他任何編程語言。

要繪製一個命令檢查例如答案的所有文件上 Loop structure inside gnuplot?

然後,在Linux上,你可以使用colrmpaste結合生成的數據。

cat temp1.dat | colrm 11 > x 
cat temp1.dat | colrm 1 11 | colrm 12 > y1 
cat temp2.dat | colrm 1 11 | colrm 12 > y2 
... 

paste x y1 y2 ... > combined.dat 

根據需要調整常量。

同樣,學習編程語言也可能有所幫助。

+0

只有3種方法才能在物理學中取得好成績... – Holmz