2016-01-24 100 views
1

我有一个将某些数据输出到.txt文件的Fortran 90程序。 数据将与gnuplot一起绘制。将命令行参数传递给Windows中的gnuplot

我能够推出的gnuplot与

CALL SYSTEM("start wgnuplot") 

这相当于在Windows的命令行提示符下键入

start gnuplot 

但是,我想让程序告诉gnuplot接下来要做什么,即将目录更改为正确的,并绘制我的file.txt。

所有这一切都归结为一个简单的问题:

我如何通过在Windows的命令行启动gnuplot的,并赋予它一些额外的命令?

我试图做一些更容易的事情,比如绘制y = x。 在正常的gnuplot窗口中,这只是绘图x。

从CMD.EXE我已经试过(这是由Fortran语言的呼叫系统()调用):

start wgnuplot plot x 
start wgnuplot plot x -pause 
start wgnuplot plot x -persist 
start wgnuplot plot x -noend 
start wgnuplot plot x /noend 

和其他人,包括带或不带引号每一个可能的变型,例如

start wgnuplot "plot x -persist" 

迄今为止唯一可行的一个基本

start gnuplot 

确实启动了gnuplot。但后来我不知道如何添加下一个命令。一旦我有了一个可用的命令行输入,我相信我将不得不将其放到CALL SYSTEM参数中,让我的Fortran程序完成所有工作。

我只能找到有关如何在类似UNIX的机器上实现此操作的指示信息,但不能在Windows上。 任何帮助,将不胜感激。

背景信息:Windows 8的代码::块,GNUPLOT 5.0 PATCHLEVEL 1

+0

送花儿给人使用标签[tag:fortran],并且仅在需要区分版本时才添加版本标签(这里不是真的)。 –

+0

您可以使用选项'-e'运行简单说明,例如'gnuplot -p -e“plot x”'。由于您使用的是gnuplot 5.0,我建议在脚本中使用选项'-c'(请参阅[本答案](http:// stackoverflow。com/a/31815067/2174266),虽然我不知道它是否适用于windows) – vagoberto

回答

1

你需要使用命名管道,其在C和UNIX非常简单:

http://tldp.org/LDP/lpg/node11.html ,看到这样的回答: https://stackoverflow.com/a/14027358/2743307

在Fortran和UNIX

你可以使用shell命令mkfifohttps://genomeek.wordpress.com/2012/05/07/tips-reading-compressed-file-with-fortran-and-named-pipe/

+0

谢谢你的回答,但是我已经检查过这个问题,它很复杂。我似乎无法在Fortran中实现它。假设没有涉及编码,是不是有一种方法可以简单地通过命令行执行,比如“启动wgnuplot并执行此操作”? –

+0

最好的方法是用Fortran用所有的gnuplot命令写一个'file.gp'文件,然后使用'CALL系统(“wgnuplot -p file.gp”)' – bibi