VecStat(3pm) | User Contributed Perl Documentation | VecStat(3pm) |
Math::VecStat - Some basic numeric stats on vectors
use Math::VecStat qw(max min maxabs minabs sum average); $max=max(@vector); $max=max(\@vector); ($max,$imax)=max(@vector); ($max,$imax)=max(\@vector); $min=min(@vector); $min=min(\@vector); ($max,$imin)=min(@vector); ($max,$imin)=min(\@vector); $max=maxabs(@vector); $max=maxabs(\@vector); ($max,$imax)=maxabs(@vector); ($max,$imax)=maxabs(\@vector); $min=minabs(@vector); $min=minabs(\@vector); ($max,$imin)=minabs(@vector); ($max,$imin)=minabs(\@vector); $sum=sum($v1,$v2,...); $sum=sum(@vector); $sum=sum(\@vector); $average=average($v1,$v2,...); $av=average(@vector); $av=average(\@vector); $ref=vecprod($scalar,\@vector); $ok=ordered(@vector); $ok=ordered(\@vector); $ref=sumbyelement(\@vector1,\@vector2); $ref=diffbyelement(\@vector1,\@vector2); $ok=allequal(\@vector1,\@vector2); $ref=convolute(\@vector1,\@vector2);
This package provides some basic statistics on numerical vectors. All the subroutines can take a reference to the vector to be operated on. In some cases a copy of the vector is acceptable, but is not recommended for efficiency.
if( ordered( $lowBound, $value, $highBound ) ){
instead of the (slightly) more clumsy
if( ($lowBound <= $value) && ($value <= $highBound) ) {
$s = sumbyelement( [10,20,30], [1,2,3] ); $d = diffbyelement( [10,20,30], [1,2,3] );
$s will be "[11,22,33]", $d will be "[9,18,27]".
$r = convolute( [1,2,3], [-1,2,1] );
returns a reference to
[-1,4,3]
$a = Math::VecStat::median( [9,8,7,6,5,4,3,2,1] );
returns the list reference
[ 5, 4 ]
i.e. the median value is 5 and it is found at position 4 of the original array.
If there are several elements of the array having the median value, e.g. [1,3,3,3,5]. In this case we choose always the first element in the original vector which is a median. In the example, we return [3,1]. =back =head1 HISTORY
$Log: VecStat.pm,v $ Revision 1.9 2003/04/20 00:49:00 spinellia@acm.org Perl 5.8 broke test 36, exposing inconsistency in C<median>. Fixed, thanks to david@jamesgang.com. Revision 1.8 2001/01/26 11:10:00 spinellia@acm.org Added function median. Fixed test, thanks to Andreas Marcel Riechert <riechert@pobox.com> Revision 1.7 2000/10/24 15:28:00 spinellia@acm.org Added functions allequal diffbyelement Created a reasonable test suite. Revision 1.6 2000/06/29 16:06:37 spinellia@acm.org Added functions vecprod, convolute, sumbyelement Revision 1.5 1997/02/26 17:20:37 willijar Added line before pod header so pod2man installs man page correctly Revision 1.4 1996/02/20 07:53:10 willijar Added ability to return index in array contex to max and min functions. Added minabs and maxabs functions. Thanks to Mark Borges <mdb@cdc.noaa.gov> for these suggestions. Revision 1.3 1996/01/06 11:03:30 willijar Fixed stupid bug that crept into looping in min and max functions Revision 1.2 1995/12/26 09:56:38 willijar Oops - removed xy data functions. Revision 1.1 1995/12/26 09:39:07 willijar Initial revision
Let me know. I welcome any appropriate additions for this package.
John A.R. Williams <J.A.R.Williams@aston.ac.uk> Andrea Spinelli <spinellia@acm.org>
2022-11-20 | perl v5.36.0 |