2015-04-12 66 views
2

我想使用Fortran將GNUPLOT命令寫入到txt文件中,我可以爲大多數簡單命令執行此操作,但是在寫入包含特殊字符或AWK命令的命令時遇到問題。如何使用Fortran將具有特殊字符的特定GNUPLOT命令寫入txt文件?

假設我有一個三列輸入文件。第一列用於設置點的顏色,他們的座標存儲在列2和3

例如,我稱之爲「Input.dat」輸入文件如下:

blue 1 1 
red 2 1 
red 3 0 
blue 4 1 
red 5 1 
blue 6 1 

我使用包含GNUPLOTs命令的以下txt文件,並使用它來繪製我的輸入文件。

GNUPLOT.txt:

plot "< awk '{if($1 == \"blue\") print}' Input.dat" u 2:3 t "blue" w p pt 7, \ 
    "< awk '{if($1 == \"red\") print}' Input.dat" u 2:3 t "red" w p pt 7 
pause -1 

我需要創建一個使用Fortran語言命令這個輸入txt文件,但我不能! 請您告訴我如何使用Fortran命令創建像GNUPLOT.txt這樣的txt文件?

我用下面的命令,沒有運氣:提前

write('GNUPLOT.txt', *)'set pointsize 3' 
write('GNUPLOT.txt', *)'plot "< awk '{if($1 == \"blue\") print}' Input.dat" u 2:3 t "blue" w p pt 7, \' 
write('GNUPLOT.txt', *)'"< awk '{if($1 == \"red\") print}' Input.dat" u 2:3 t "red" w p pt 7' 
write('GNUPLOT.txt', *)'pause -1' 

感謝,

回答

2
write(11, *) 'set pointsize 3' 
write(11, *) 'plot "< awk ''{if($1 == \"blue\") print}'' Input.dat" u 2:3 t "blue" w p pt 7, \' 
write(11, *) '"< awk ''{if($1 == \"red\") print}'' Input.dat" u 2:3 t "red" w p pt 7' 
write(11, *) 'pause -1' 

您必須使用來分隔字符串的字符一倍裏面的字符串。

例如,

print *,'''' 
end 

將打印只是'

+2

將字符文字用作輸出單元也會產生問題。 – IanH

+0

現在有用,謝謝。 – user4780176

+0

@IanH當然,我只是複製了它。我假設每個人都知道如何使用輸出單位。 –

相關問題