Statistica Visual Basic Library of Matrix Functions

Statistica Visual Basic contains a large number of designated matrix and statistical functions that make the SVB environment ideal for prototyping algorithms or for developing custom statistical procedures. In order to access the functions of this library, you must either include the file STB.svx at the beginning of the program file (see also Include file STB.svx and the Statistica Visual Basic Library of Matrix Functions) or use the MatrixObject.

One major advantage of using the Statistica library of matrix functions, instead of writing these functions "by hand" in Visual Basic, is that the former will evaluate much faster. For example, when you want to invert large matrices, the MatrixInverse function will perform the actual matrix inversion using the highly optimized (compiled) algorithms of Statistica.

Functions

Example and Description

Dim

Dim AnArray(10,10) as Variant

'Declares a two-dimensional matrix named AnArray.

 

Lowess

Lowess (arrayX(), arrayY(), .5, 2, 0, Xs, Ys, Rw, Res);

'Computes robust locally weighted regression (LOWESS smoothing) of 2D scatterplot data (x-y pairs).

MatrixAdd

Call MATRIXADD(FirstArray(), SecondArray(), ResultArray())

'Adds each element of FirstArray to corresponding element of
'SecondArrayand places result in matrix ResultArray.

MatrixAllNonZero

Call MATRIXALLNONZERO(AnArray())

'Assigns 1 to variable ReturnValue if each element of
'AnArray is non-zero, otherwise ReturnValue is set to 0.

MatrixAnyNonZero

Call MATRIXANYNONZERO(AnArray())

'Assigns 1 to variable ReturnValue if any element of
'AnArray is non-zero, otherwise ReturnValue is set to 0.

MatrixCholeskyDecomposition

Call MATRIXCHOLESKYDECOMPOSITION(FirstArray(), SecondArray())

'Performs Cholesky Decomposition of matrix FirstArray and
'stores results in SecondArray.

MatrixCombineHoriz

Call MATRIXCOMBINEHORIZ(FirstArray(), SecondArray(), ResultArray())

'Places values of SecondArray to the right of FirstArray in
'result matrix ResultArray.

MatrixCombineVert

Call MATRIXCOMBINEVERT(FirstArray(), SecondArray(), ResultArray())

'Places values of SecondArray below FirstArray in result
'matrix ResultArray.

MatrixCopy

Call MATRIXCOPY(FirstArray(), 1, 1, 4, 5, SecondArray(), 1, 2)

'Copies 4 rows, 5 columns from FirstArray beginning at first
'row and first column, and places copied values in SecondArray

'beginning at first row, second column.

MatrixCorrelations

Call MATRIXCORRELATIONS(FirstArray(),1,CorrsArray())

'Computes correlations between columns of FirstArray and
'places coefficients in square matrix CorrsArray.

MatrixCrossProductOfDev

Call MATRIXCROSSPRODUCTOFDEV(FirstArray(),1,CrossArray())

'Computes squared deviations and crossproducts of deviations
'for matrix FirstArray and places results in square matrix
'CrossArray.

MatrixDet

Call MATRIXDET(AnArray(),Det)

'Computes determinant of square matrix AnArray and places
'resulting determinant in variable Det.

MatrixDisplay

Call MATRIXDISPLAY(AnArray(),"Spreadsheet Title")

'Displays values of matrix AnArray in a Spreadsheet titled
'Spreadsheet Title.

MatrixDuplicate

Call MATRIXDUPLICATE(FirstArray(),Dupl())

'Duplicates matrix FirstArray into matrix Dupl.

MatrixEigenValues

Call MATRIXEIGENVALUES(FirstArray(),EigenValues(),EigenValue)

'Places eigenvalues computed for matrix FirstArray into array
'EigenValues and places number of positive eigenvalues computed
'into the variable EigenValue.

MatrixEigenVectors

Call MATRIXEIGENVECTORS(FirstArray(), EigenValues(), EigenVectors(),PosEigenValue)

'Places eigenvectors computed for matrix FirstArray into the
'matrix EigenVectors, eigenvalues into vector EigenValues, and
'places number of positive eigenvalues computed into the
'variable PosEigenValue.

MatrixElemAdd

Call MATRIXELEMADD(FirstArray(),2,ResultArray())

'Adds constant value (2) to each element of matrix FirstArray
'and places result in matrix ResultArray.

MatrixElemDivide

Call MATRIXELEMDIVIDE(FirstArray(),2,ResultArray())

'Divides each element of matrix FirstArray by constant
'value (2) and places result in matrix ResultArray.

MatrixElemMultiply

Call MATRIXELEMMULTIPLY(FirstArray(),2,ResultArray())

'Multiplies each element of matrix FirstArray by constant
'value (2) and places result in matrix ResultArray.

MatrixElemSubtract

Call MATRIXELEMSUBTRACT(FirstArray(),2,ResultArray())

'Subtracts constant value (2) from each element of matrix
'FirstArray and places result in matrix ResultArray.

MatrixExtract

Call MATRIXEXTRACT(FirstArray(),1,2,3,4,SubMatrix())

'Extracts 3 rows, 4 columns of values from matrix FirstArray,
'beginning with row 1, column 2, and places extracted values
'in matrix SubMatrix.

MatrixFill

Call MATRIXFILL(2.71828,FirstArray(),2,1,1,0)

'Fills entire second column of matrix FirstArray with the
'value 2.71828.

MatrixGeneralPseudoInverse

Call MATRIXGENERALPSEUDOINVERSE(FirstArray(),ResultArray())

'Computes the generalized inverse of the matrix FirstArray
'and places it in the matrix ResultArray.

MatrixGetColumn

Call MATRIXGETCOLUMN(FirstArray(),3,ResultArray())

'Extracts the third column from the matrix FirstArray and
'places it in the matrix ResultArray.

MatrixGetDiagonal

Call MATRIXGETDIAGONAL(FirstArray(),ResultArray())

'Extracts the main diagonal from the matrix FirstArray and
'places it in the matrix ResultArray.

MatrixGetRow

Call MATRIXGETROW(FirstArray(),2,ResultArray())

'Extracts the second row from the matrix FirstArray and
'places it in the matrix ResultArray.

MatrixGramSchmidtOrt

Call MATRIXGRAMSCHMIDTORT(FirstArray(),ResultArray())

'Performs Gram-Schmidt orthonormalization of the matrix
'FirstArray and places results in the matrix ResultArray.

MatrixIdentity

Call MATRIXIDENTITY(AnArray())

'Sets the values of matrix AnArray to the identity matrix
'(1 along main diagonal, 0 elsewhere).

MatrixInverse

Call MATRIXINVERSE(FirstArray(),ResultArray())

'Computes the inverse of the matrix FirstArray and places
'it in the matrix ResultArray.

MatrixIsEqual

Call MATRIXISEQUAL(FirstArray(), SecondArray(), ResultArray())

'Compares each element of FirstArray to the corresponding
'element of SecondArray and if equal, places a 1 in the
'corresponding element of matrix ResultArray.

MatrixIsGreater

Call MATRIXISGREATER(FirstArray(), SecondArray(), ResultArray())

'Compares each element of FirstArray to the corresponding
'element of SecondArray and if value of FirstArray is greater,
'places a 1 in the corresponding element of matrix ResultArray.

MatrixIsGreaterEqual

Call MATRIXISGREATEREQUAL(FirstArray(), SecondArray(), ResultArray())

'Compares each element of FirstArray to the corresponding
'element of SecondArray and if value of FirstArray is equal
'or greater, places a 1 in the corresponding element of matrix
'ResultArray.

MatrixIsLess

Call MATRIXISLESS(FirstArray(), SecondArray(), ResultArray())

'Compares each element of FirstArray to the corresponding
'element of SecondArray and if value of FirstArray is less,
'places a 1 in the corresponding element of matrix ResultArray.

MatrixIsLessEqual

Call MATRIXISLESSEQUAL(FirstArray(), SecondArray(), ResultArray())

'Compares each element of FirstArray to the corresponding
'element of SecondArray and if value of FirstArray is equal or
'less, places a 1 in the corresponding element of matrix
'ResultArray.

MatrixIsNotEqual

Call MATRIXISNOTEQUAL(FirstArray(), SecondArray(), ResultArray())

'Compares each element of FirstArray to the corresponding
'element of SecondArray and if not equal, places a 1 in the
'corresponding element of matrix ResultArray.

MatrixKroneckerMultiply

Call MATRIXKRONECKERMULTIPLY(FirstArray(), SecondArray(), ResultArray())

'Computes the Kronecker product of the matrices FirstArray
'and SecondArray and places results in the matrix ResultArray.

MatrixLogicalAnd

Call MATRIXLOGICALAND(FirstArray(), SecondArray(), ResultArray())

'Performs a logical comparison of each element of FirstArray
'with the corresponding element of SecondArray and if both are

'true (values > 0), places a 1 in the corresponding element of
'matrix ResultArray.

MatrixLogicalNot

Call MATRIXLOGICALNOT(FirstArray(),ResultArray())

'Performs a logical negation of each element of FirstArray
'(where true = values > 0), places result in the
'corresponding element of matrix ResultArray.

MatrixLogicalOr

Call MATRIXLOGICALOR(FirstArray(), SecondArray(), ResultArray())

'Performs a logical comparison of each element of FirstArray
'with the corresponding element of SecondArray and if either
'is true (values > 0), places a 1 in the corresponding element
'of matrix ResultArray.

MatrixMeans

Call MATRIXMEANS(FirstArray(), ResultArray())

'Computes means of columns of FirstArray and places results
'in ResultArray.

MatrixMultiply

Call MATRIXMULTIPLY(FirstArray(), SecondArray(), ResultArray())

'Multiplies the matrices FirstArray by SecondArray and places
'results in ResultArray.

MatrixRank

Call MATRIXRANK(AnArray(),Result)

'Computes the rank of matrix AnArray and places result in
'variable Result.

MatrixRead

Call MATRIXREAD("C:\Matrix.txt", AnArray())

'Reads the contents of text file "C:\Matrix.txt" into
'matrix AnArray.

MatrixReadFromDataFile

Call MATRIXREADFROMDATAFILE("C:\Data.sta",1,1,0,0,AnArray())

'Reads the contents of data file "C:\Data.sta" into matrix
'AnArray.

MatrixSetColumn

Call MATRIXSETCOLUMN(ResultsArray(),2, AnArray())

'Places the contents of the second column of matrix
'AnArray into the second column of matrix ResultsArray.

MatrixSetDiagonal

Call MATRIXSETDIAGONAL(ResultArray(), AnArray())

'Places the contents of the main diagonal of matrix
'AnArray into the main diagonal of matrix ResultsArray.

MatrixSetRow

Call MATRIXSETROW(ResultArray(),3, AnArray())

'Places the contents of the third row of matrix AnArray
'into the third row of matrix ResultArray.

MatrixSetToZero

Call MATRIXSETTOZERO(AnArray())

'Sets all values of matrix AnArray to zero.

MatrixSingularValues

Call MATRIXSINGULARVALUES(AnArray(), ResultArray())

'Computes singular values of matrix AnArray and places them
'into matrix ResultArray.

MatrixSingularValuesDecomp

Call MATRIXSINGULARVALUESDECOMP(FirstArray(), ResultArray1(), ResultArray2(),ResultArray3())

'Performs singular value decomposition of matrix FirstArray and
'places resultant values into matrix ResultArray1, matrix
'ResultArray2, and matrix ResultArray3.

MatrixSolve

Call MATRIXSOLVE(FirstArray(), ArrayB(), ArrayX())

'For each column vector in ArrayX and ArrayB, solves the linear
'equations FirstArray * vectorX = vectorB and places the
'results in the respective columns of ArrayX.

MatrixSubtract

Call MATRIXSUBTRACT(FirstArray(), SecondArray(), ResultArray())

'Subtracts each element of SecondArray from corresponding
'element of FirstArray and places result in matrix ResultArray.

MatrixSumOfSquares

Call MATRIXSUMOFSQUARES(AnArray(), Result)

'Computes sum of squares of each element of AnArray and
'places result in variable Result.

MatrixSweep

Call MATRIXSWEEP(AnArray(),1,10,-1)

'Performs backward sweep of AnArray from column 1 to 10.

MatrixTrace

Call MATRIXTRACE(AnArray(), Result)

'Computes trace of matrix AnArray and places result in
'variable Result.

MatrixTranspose

Call MATRIXTRANSPOSE(AnArray(), Result)

'Transposes matrix AnArray and places result in matrix Result.

MatrixWrite

Call MATRIXWRITE("C:\Matrix.txt",AnArray())

'Writes the contents of matrix AnArray into text file "C:\Matrix.txt".

NewScrollsheet

NewScrollsheet(2, 3, AnArray, 'New Spreadsheet', 'Row 1|Row 2', 'Col A|Col B|Col C')

'Creates a new 2 row by 3 column Spreadsheet from the
'contents of matrix AnArray and names the rows and columns.

ReDim

Dim AnArray()

ReDim AnArray(10)

'Dynamically changes the size of AnArray.

ScrollsheetGetMatrix

ScrollsheetGetMatrix(scroll1, 1, 2, AnArray)

'Extracts values from the specified Spreadsheet beginning
'at row 1, column 2 and assigns the values to the
'matrix AnArray.

ScrollsheetSetMatrix

ScrollsheetSetMatrix(scroll1, 2, 4, AnArray)

'Places the contents of the matrix AnArray into
'the specified Spreadsheet beginning at row 2, column 4.

VectorDualSort

Call VECTORDUALSORT(Vector, IndexVector, SORT_ASCENDING)

'Sorts the elements of Vector into ascending order;
'the elements of IndexVector are rearranged, so that
'the pairs of values Vector(i) and IndexVector(i)
'remain the same.

VectorRank

Call VECTORRANK(Vector, SORT_ASCENDING, RANK_MEAN)

'Ranks the elements of Vector in ascending order,
'assigning mean ranks to tied values.

VectorSort

Call VECTORSORT(Vector, SORT_DESCENDING)

'Sorts the elements of Vector in descending order.