class: /** * A collection of 2D matrix functions for AS3. **/ public dynamic class Matrix2D extends Array { public function Matrix2D(nRows:int=0,nCols:int=0) { for (var k:int=0;k<nRows;k++) { this[k]=new Array(nCols); } }
/** * Returns a square [n][n] matrix with all the elements set to zero. * * @param n Matrix length. * * @see #Identity() **/ public dynamic function Zero(n:int=0):Matrix2D { var a:Matrix2D=new Matrix2D(n,n); for (var i:int=0;i<n;i++) { for (var j:int=0;j<n;j++) { a[i][j]=0.; } } return (a); } /** * Returns an identity matrix [n][n] with the diagonal elements set to one. * * @param n Matrix length. * * @see #Zero() **/ public dynamic function Identity(n:int=0):Matrix2D { var a:Matrix2D=new Matrix2D(n,n); for (var i:int=0;i<n;i++) { for (var j:int=0;j<n;j++) { if (i==j) { a[i][j]=1.; } else { a[i][j]=0.; } } } return (a); } } test: import com.freevryheid.statistics.Matrix2D; private function init():void { var b:Matrix2D=new Matrix2D(); trace(b.Identity(3)) } outputs: 1,0,0,0,1,0,0,0,1