2

我需要在每个第 2 块的第 2 行中绘制迭代(不是 i)与 f(i) 的关系。我用“*”标记了这些值。我尝试使用“每个”提出一些解决方案,但无法弄清楚如何将来自两个单独块的数据相互绘制。有多个块以这种模式进行。我选择只显示 1 次重复。这是重新格式化数据的最后手段。我想设计一种以当前格式绘制数据的方法。谁能提供一些见解?

 i     f(i)       x(i)    iteration =   0*

 1  0.000E+00  1.478E-02  Vlnp                                    
 2 -1.000E-06* 7.352E-01  Vvnp                                    
 3  0.000E+00  7.512E-01  rhovnp                                  
 4 -9.721E-01  9.180E+02  Pnp                                     
 5  9.721E-01  4.380E+06  hvnp                                    
 6  1.000E-06  1.000E-06  mdevap                                  

 i     f(i)       x(i)    iteration =   1*

 1 -2.776E-17 -1.265E+02  Vlnp                                    
 2  1.985E-10* 1.273E+02  Vvnp                                    
 3 -1.224E-03  4.292E+03  rhovnp                                  
 4 -9.983E-01  9.180E+02  Pnp                                     
 5  1.018E+00 -2.560E+10  hvnp                                    
 6  4.468E-08  3.250E+06  mdevap                                  
4

1 回答 1

1

我强烈建议重组您的数据。这也可以在 gnuplot 中使用grep,awksed. 这是一个工作示例。

 plot "< grep '*' kxkdata | awk '/^ i/ {printf $6\" \"} /^ 2/ {print $2}' | sed 's/\*//g'"

基本上<意味着从一种子shell中读取(我称你的文件为kxk7607)。关于命令行工具的使用,可以在网上找到相关资料。

于 2012-10-05T06:00:44.193 回答