in reply to Re^2: Any idea for predicting the peak points in the graph by perl
in thread Any idea for predicting the peak points in the graph by perl

The following code assumes that the values are separated by white space (untested):

use strict; my $input_file = 'foobar.txt'; open my $in, $input_file or die "Failed to read $input_file: $!\n"; my $max = do { local $_ = <$in>; chomp; [ split ] }; while ( <$in> ) { chomp; my ( $x, $y ) = split; $max = [ $x, $y ] if $y > $max->[ 1 ]; } close $in; print "max at ($max->[ 0 ], $max->[ 1 ])\n";
Unless your file is huge, the above is probably adequate. If your file is huge, and the data is smooth and ordered by x-values, then replacing the while loop with the following would speed things up a bit:
while ( <$in> ) { chomp; my ( $x, $y ) = split; last if $y <= $max->[ 1 ]; $max = [ $x, $y ]; }

Update: Minor change to original snippet (first data point is now read outside the while loop), plus additional snippet for the case of ordered smooth data.

the lowliest monk

Replies are listed 'Best First'.
A reply falls below the community's threshold of quality. You may see it by logging in.