#!/usr/bin/perl
# baseStat.PL -- gives basic statistics of multicolumn data
# Ben Smith -- S/V Mother of Perl, 2006
#
###########################################################
use strict;
use warnings;

my(@fields,@maxs,@maxR,@mins,@minR,@accums,$count)=0;
while(<>) {
    chomp;
    my @fields = split;
    next if not scalar @fields;
    ++ $count;
    for(my $n=0; $n< scalar @fields; ++ $n) {
	if((not defined $maxs[$n]) || ($fields[$n] > $maxs[$n])) {
	    $maxs[$n] = $fields[$n];
	    $maxR[$n] = $count;
	}
	if((not defined $mins[$n]) || ($fields[$n] < $mins[$n])) {
	    $mins[$n] = $fields[$n];
	    $minR[$n] = $count;
	}
	$accums[$n] = $fields[$n] unless defined $accums[$n];
	$accums[$n] += $fields[$n];
    }
}
write;
exit;


#####################################################################

format STDOUT =

Samples: @###########
$count
                  X                     Y                     Z                     T
Min: @############.#####   @############.####   @#############.#### @###############.###
$mins[0],$mins[1],$mins[2],$mins[3]
Min Record:@#######        @#######         @#######         @#######
$minR[0],$minR[1],$minR[2],$minR[3]
Max: @############.#####   @############.####   @#############.#### @###############.###
$maxs[0],$maxs[1],$maxs[2],$maxs[3]
Max Record:@#######        @#######         @#######         @#######
$maxR[0],$maxR[1],$maxR[2],$maxR[3]
Avg: @############.#####   @############.####   @#############.#### @###############.###
$accums[0]/$count, $accums[1]/$count, $accums[2]/$count, $accums[3]/$count
.
Home
 Boat
 Photos
 Videos
 Hydrography
   nmea2xyzt
   NMEAfields
   Datalogger
  Cleaning
  Analysis
   Stats
   Smooth
  GridPlot
 Blog
 SiteMap