use strict;
use warnings;
use Text::CSV;
my $csvfile = 'Combined.csv';
my $newfile = 'averaged.csv';
my $csv = Text::CSV->new();
open (CSV, "<", $csvfile) or die "Couldn't open output file: $!";
open (OUT, ">",$newfile) or die "Couldn't open output file: $!";
my $i=0;
my $l=0;
my @time;
my $tave;
my @doppler;
my $dave;
my @hyperfine;
my $have;
my $window=2;
while (
if ($csv->parse($_)) {
my @columns = $csv->fields();
$time[$i-int($i/$window)*$window]=$columns[0];
$doppler[$i-int($i/$window)*$window]=$columns[1];
$hyperfine[$i-int($i/$window)*$window]=$columns[2];
if($i>=$window){
for($l=0;$l<$window;$l++){
$tave+=$time[$l]/$window;
$dave+=$doppler[$l]/$window;
$have+=$hyperfine[$l]/$window;
}
print OUT "$tave \t\t $dave \t\t $have \n";
$tave=0;
$dave=0;
$have=0;
}
$i++;
} else {
my $err = $csv->error_input;
print "Failed to parse line: $err";
}
}
close CSV; close OUT;
print "\n Moving Average taken over $i lines.\n";

No comments:
Post a Comment