The BigMatrix class implements an MxN matrix for situations and calculations where the usual 4x3 Matrix3 class is not adequate. The BigMatrixRowArray class implements an N element vector. Each row in a BigMatrix value is a BigMatrixRowArray value. Only Float values can be stored in the elements of a BigMatrixRowArray.
BigMatrix <rows> <columns>
<BigMatrix>.rows : Integer, read-only
<BigMatrix>.columns : Integer, read-only
<BigMatrix> + <BigMatrix>
Both BigMatrix values must have same size
Returns BigMatrixRowArray of indexed row
Returns float value of indexed column
<BigMatrixRowArray>[<int_column>] = <float_value>
Sets value in the indexed column
Because accessors are themselves operands, these definitions are recursive, which means that you can string accessors together:
Returns float value of indexed row and column
<BigMatrix>[<int_row>][<int_column>] = <float_value>
Sets value in the matrix
Inverts the matrix in place, i.e., the input BigMatrix itself is modified. The return value is also the inverted matrix. Note that this method only works if this matrix is "square", i.e. if m = n.
Returns the transpose of <BigMatrix>, i.e. result BigMatrix[i][j] = BigMatrix[j][i].
Frees all the elements and sets the matrix size to be 0x0
setSize <BigMatrix> <rows> <columns>
Deletes the current elements and sets the size of the matrix to rows x columns.
identity <BigMatrix> -- mapped function
If the number of rows and columns are equal, this method sets the matrix to the identity (diagonal elements = 1, all other elements = 0). If the number of rows and columns are not equal, it does nothing. If the parameter is an array of matrices, this function returns the value OK. In both cases, the input BigMatrix value(s) are set to the identity.
A BigMatrix object is a compound object, similar to an array of arrays. All of the BigMatrix methods operate directly on the components of the input BigMatrix. As described in Reference Assignment, this can cause complications to occur if a BigMatrix object referenced by more than one variable. If you assign a new value to an element of the matrix, or use any of the BigMatrix methods, the same object is still referenced by the variables. This can be seen in the following example.
bm1=bigmatrix 2 2
for i=1 to 2 do for j=1 to 2 do bm1[i][j]=random 0 10
#BigMatrix( -- result of line 1, contents of bm1
OK -- result of line 2
#BigMatrix( -- result of line 3, contents of bm2
#BigMatrix( -- result of line 4, contents of bm1
#BigMatrix( -- result of line 5, contents of bm2