1
我有幾個不同的文件(aaa.dat,bbb.dat ....),有沒有辦法讓gnuplot把這些文件像DATAFILE_A = file('aaa.dat') ,DATAFILE_B = file('bbb.dat'),這樣我就可以在整個腳本中輕鬆地調用它們,並且只在腳本的開始處更改文件的名稱。gnuplot可以把一個文件作爲參數
我有幾個不同的文件(aaa.dat,bbb.dat ....),有沒有辦法讓gnuplot把這些文件像DATAFILE_A = file('aaa.dat') ,DATAFILE_B = file('bbb.dat'),這樣我就可以在整個腳本中輕鬆地調用它們,並且只在腳本的開始處更改文件的名稱。gnuplot可以把一個文件作爲參數
最方便的方法是創建一個字符串,其中包含由空格分隔的所有文件名。然後你可以遍歷這個列表:
filelist = "aaa.dat bbb.dat ccc.dat"
plot for [file in filelist] file
,或者,如果你想創建的每個數據文件的一個形象:
do for [file in filelist] {
set output file.'.png'
plot file
}
您也可以使用系統命令來選擇一些文件,創建文件列表:
filelist = system('ls *.dat')
...
或者通過文件列表作爲選項調用時gnuplot
:
gnuplot -e "filelist='aaa.dat bbb.dat ccc.dat'" script.gp
其中script.gp
包含通用繪圖命令:
do for [file in filelist] { ... }
謝謝,但我需要的文件中的信息不只是字符串文件的名稱 - 即,如果該文件包含數據的4列,我想是能夠在整個腳本中回憶x,yz,t – user3142307
對不起,但我不明白你的意思。你能否擴大你的問題來澄清?如果您在多個地方需要文件名,您還可以使用例如'file = word(filelist,1)'提取一個文件名。當然,你仍然可以使用'使用'和所有這些東西來選擇不同的列。那麼,這種方法有什麼問題? – Christoph
我的意思是不只是文件名,但它的內容(即0 0 11.209 0.010 250 0 11.122 0.010 ........) – user3142307