現在、Perl と gnuplot を学んでいます。次の値に基づいて特定の値をカウントする方法を知りたいです。たとえば、次のもので構成されるテキストファイルがあります。
#ID(X) Y
1 1
3 9
5 11
出力には、不明な ID の値も表示されます。したがって、出力は次のようになります。
#ID(X) Y
1 1
2 5
3 9
4 10
5 11
ID#2 の Y は、線形代数である ((2-3)/(1-3))*1 + ((2-1)/(3-1))*9 に基づいています。
Y2=((X2-X3)/(X1-X3))*Y1 + ((X2-X1)/(X3-X1)) * Y3
ID#5も同様
現在、私はこのコードを持っています、
#! /usr/bin/perl -w
use strict;
my $prev_id = 0;
my $prev_val = 0;
my $next_id;
my $next_val;
while (<>)
{
my ($id, $val) = split;
for (my $i = $prev_id + 1; $i < $next_id; $i++)
{
$val = (($id - $next_id) / ($prev_id - $next_id)) * $prev_val + (($id - $prev_id) / ($next_id - $prev_id)) * $next_val;
printf ("%d %s\n", $i, $val);
}
printf ("%d %s\n", $id, $val);
($prev_val, $prev_id) = ($val, $id);
($next_val, $next_id) = ($prev_val, $prev_id);
}