0
データを正規化したい。私はこのコードを書いた:Perl:最大値を求め、最大値で割り、値と配列の位置を比較して
my $max1=0;
for (my $i=0; $i<=$#data; $i++) {
if ($data[$i][1]>$data[$max1][1]) {$max1=$i;}
#Disabled# if ($data[$i][1]>$max1) {$max1=$data[$i][1];}
}
for (my $i=0; $i<=$#data; $i++) {
print "$i\t$data[$i][0]\t$data[$i][1]\t$max1\t";
$data[$i][1] = $data[$i][1]/$data[$max1][1] * 10000;
#Disabled# $data[$i][1] = $data[$i][1]/$max1 * 10000;
print "$data[$i][0]\t$data[$i][1]\t$max1\n";
}
しかし、これはエラー生成:最大位置後の値が変更されませんしながら、 "/ $データかのように最大位置までのすべての値は、最大値で除算されている[$のMAX1を] [1] * 10000 "は発生しませんでした。
しかし、私は配列の位置によって値を使用してではなく、比較を変更した場合、私が正しい結果だ:私は、コードの最初のビットと間違って何をしました
my $max1=0;
for (my $i=0; $i<=$#data; $i++) {
#Disabled# if ($data[$i][1]>$data[$max1][1]) {$max1=$i;}
if ($data[$i][1]>$max1) {$max1=$data[$i][1];}
}
for (my $i=0; $i<=$#data; $i++) {
print "$i\t$data[$i][0]\t$data[$i][1]\t$max1\t";
#Disabled# $data[$i][1] = $data[$i][1]/$data[$max1][1] * 10000;
$data[$i][1] = $data[$i][1]/$max1 * 10000;
print "$data[$i][0]\t$data[$i][1]\t$max1\n";
}
を?
私は、入力サンプルデータと必要な出力が必要だと思います。これは....厄介に見えます。 – Sobrique