2

各 2 番目のブロックの行 2 で、反復 (i ではない) と f(i) をプロットする必要があります。値を「*」でマークしました。「すべて」を使用していくつかの解決策を考え出そうとしましたが、2 つの別々のブロックのデータを互いにプロットする方法がわかりませんでした。このパターンで進行するブロックが複数あります。繰り返しを 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

データを再構築することを強くお勧めします。grepこれは、gnuplotで 、awkおよび などのツールを使用してインラインで行うこともできますsed。これは実用的な例です。

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

基本的<には、一種のサブシェルから読み取ることを意味します (私はあなたのファイルを kxk7607 と呼びました)。コマンド ライン ツールの使用法については、オンラインで情報を見つけることができます。

于 2012-10-05T06:00:44.193 に答える