Table of Contents

  Overview
  Mathematic Methods
  Solver Methods
  Matrix Manipulation Methods
  Data Type Conversion Methods
  File Type Conversion Methods
  Boolean Methos
  Data Creation Methods
  Information Extraction Methods

Overview

The matrix libraries are the product of years worth of weekend work and the loss of many sunny weekends. The matrix library as it currently stands has hundreds of individual function types. Most functions are overloaded to work with all basic data types: decimal, double, float, long, ulong, int, uint, short, ushort, byte, sbyte, and bool (and sometimes object). Most functions are overloaded for multiple dimensionalities as well (when applicable).

Typically 1D, 2D, and 3D arrays are handled except when arrays of a certain dimensonality are required (i.e. Mult requires 2D arrays). And some of the mathematic methods are only implemented for floating point types because they don't make sense for integer types (i.e. the Sqrt function).

The method names are typically chosen to coincide with those used in Matlab, C, C++, or C#. The functionality may or may not be the same for each function as its Matlab or C cousin. This largely depends on the immediate need that I had when I wrote it.

 

Mathematic Methods

Add Adds 2 equally sized arrays together element by element or a scalar to every element of an array.
  Array + Array
  Array + Scalar
  Subtract Subtracts 2 equally sized arrays element by element. Also subtracts a scalar from every element of an array or every element of the array from the scalar.
  Array - Array
  Array - Scalar
  Scalar - Array
  Mult Matrix Multiplies two arrays in LxM * MxN format. Also can multiply a scalar to every element of an array
  Array * Array
  Array * Scalar
  MultByElem Multiplies two equally sized arrays together element by element
  Div Divides an scalar by every element in an array or every element in an array by a scalar.
  Scalar / Array
  Array / Scalar
  DivByElem Takes the quotient of two equally sized arrays element by element
  Sum Takes the sum of all elements in an array
  Sqrt Takes the square root of every element in an array
  Avg Returns the average of the values in an array
  Var Returns the variance of the values in an array
  StdDev Returns the standard deviation of the values in an array
  Inv Takes the inverse of an array
  Abs Takes the absolute value of every element in an array
  Det Takes the determinant of an array
  Floor Rounds each element of an array towards zero
  Ceil Rounds each element of an array away from zero
  LimitPrecision Limits the precision of every element of a floating point array to the specified precision
  Norm Takes the norm of an array
  Convolve Convolves an array of data with a specified kernel.
  Cond Returns the condition of the array
  Corr Takes the normalized cross correlation of two arrays element by element
  Hist Returns the histogram of an array of data
  Pow Matrix multiplies an array with itself n times
  PowByElem Raises every element in an array to the nth power
  Log Takes the logarithm of every element in an array
  HorzDiff Takes the horizontal difference between adjacent data points in an array. Data returned has a width of n-1
  VertDiff Takes the vertical difference between adjacent data points in an array. Data returned has a height of n-1
  HorzDer Takes the horizontal derivative of a 2D array of data by fitting a quadradic to each series of three horizontal data points and takes the mathematical derivative at the center point.
  VertDer Takes the vertical derivative of a 2D array of data by fitting a quadradic to each series of three vertical data points and takes the mathematical derivative at the center point.
  FindAndReplace Finds the set values in an array and replaces them.

 

Solver Methods

RRef Takes an array of data and reduces it to Reduced Row Echelon Form
  Simult Solves a set of simultaneous equations either in coefficient matrix and solution matrix form or in augmented matrix form. Note: the augmented matrix must be in (n x n+1) form.
  Coef. & Soln. Matrix
  Augmented Matrix
  Regress2 Performs n-th order polynomial regression on a set of x-y data points
  Regress3 Performs multilinear regression on a set of x-y-z data points. Note: I'm trying to crete a standardized version of (m-th x n-th) multipolynomial regression, but have not yet completed it.
  Interp2 Performs interpolation on a 2D set of data. Interpolation types include: Nearest Neighbor, Bilinear, Bicubic.
  PolyFit Fits a n-th order polynomial through n+1 data points.
  PolyFit3 Fits a (m-th x n-th) order surface through (m+1)*(n+1) points.
  BinarySearch2D_EqualSpaced Performs a 2D binary search on evenly spaced gridded data.
  BinarySearch2D_Monotonic Performs a 2D binary search on non-evenly spaced, but still monotonic (always increasing or not changing in a given direction or always decreasing or not changing in a given direction)
  BinarySearch2D_Irregular Performs a 2D binary search on completely irregular (scattered) data. Uses a triangular interpolation and prediction algorithm that works well as long as data is not too badly scattered.

 

Matrix Manipulation Methods

Col  
  Copy Copies a column of data from an array to a buffer
  Cut Copies a column of data from an array to a buffer and removes it from the input array
  Ins Inserts a column of data into an array
  Del Removes a column of data from an array
  Move Shifts the position of a column of data in an array
  Swap Interchanges the position of two columns in an array without disturbing remainder of array
  ToVec Converts a column of data to a vector
  FromVec Converts a vector to a column of data
  Row  
  Copy Copies a rowof data from an array to a buffer
  Cut Copies a row of data from an array to a buffer and removes it from the input array
  Ins Inserts a row of data into an array
  Del Removes a row of data from an array
  Move Shifts the position of a row of data in an array
  Swap Interchanges the position of two rows in an array without disturbing remainder of array
  ToVec Converts a row of data to a vector
  FromVec Converts a vector to a row of data
  Serial Serializes a multidimensional array of data to a 1D array of values
  SubMat Copies a piece of an input array to a new array
  SubVec Copies a piece of an input vector to a new vector
  RepMat Tile the input array n x m times to create a new array
  Diag Extract a diagonal of an array into a vector
  Overwrite Overwrite a section of an array with the contents of another array
  Sort Sort the elements of an array by value
  PadArray Pad the edges input array with user set value
  VecCat Concatenate two vectors
  HorzCat Concatenate two equal height arrays horizontally
  VertCat Concatenate two equal width arrays vertically
  PlaneCat Concatenate a 2D array onto the surface of a 3D
  FlipLR Flip the elements of an array from left-to-right to right-to-left
  FlipUD Flip the elements of an array from up-to-down to down-to-up
  FlipFB Flip the elements of a 3D array from front-to-back to back-to-front
  Trans Take the transpose of an array
  Rot90CW Rotate an array about the depth axis by 90 degrees clockwise
  Rot90CCW Rotate an array about the depth axis by 90 degrees counter-clockwise
  Rot180 Rotate an array about the depth axis by 180 degrees

 

Data Type Conversion Methods

ToString Convert a numeric array to a string representataion. The output string is in a format that can be directly dropped into Matlab.
  ToObject Convert numeric array into an object array
  ToDecimal Convert numeric array into a decimal array
  ToDouble Convert numeric array into a double array
  ToFloat Convert numeric array into a float array
  ToLong Convert numeric array into a long array
  ToULong Convert numeric array into an unsigned long array
  ToInt Convert numeric array into an int array
  ToUInt Convert numeric array into an unsigned int array
  ToShort Convert numeric array into a short array
  ToUShort Convert numeric array into an unsigned short array
  ToByte Convert numeric array into a byte array
  ToBool Convert numeric array into a boolean array
  RectToJagged Convert a n-D array to a jagged array type (i.e. double[,] to double[][]
  JaggedToRect Convert a jagged array to a n-D array type (i.e double[][] to double[,])

 

File Type Conversion Methods

ToCSVFile Create a CSV (Comma Sepearated Values) file from an array
  ToBitmap Create a bitmap from an array of data
  ToByte2File Create a binary file storing the information from a 2D byte array
  ToUShort2File Create a binary file storing the information from a 2D ushort array
  ToDouble2File Create a binary file storing the information from a 2D double array
  ToDouble3File Create a binary file storing the information from a 3D double array
  FromCSVFile Reads a CSV file and stores data in an array
  FromBitmap Reads a bitmap file and stores data in an array
  FromByte2File Reads a binary file containing a 2D byte array and stores in buffer
  FromUShort2File Reads a binary file containing a 2D ushort array and stores in buffer
  FromDouble2File Reads a binary file containing a 2D double array and stores in buffer
  FromDouble3File Reads a binary file containing a 3D double array and stores in buffer

 

Boolean Methods

LessThan Checks if data in array1 < array2 element by element. Boolean array of results is returned.
  LessThanEq Checks if data in array1 <= array2 element by element. Boolean array of results is returned.
  GreaterThan Checks if data in array1 > array2 element by element. Boolean array of results is returned.
  GreaterThanEq Checks if data in array1 >= array2 element by element. Boolean array of results is returned.
  Equal Checks if data in array1 == array2 element by element. Boolean array of results is returned.
  IsEmpty Check the input array for a size 0 array. Note: this is different than a null array.
  IsBlank Checks to see if the input array is different than initialized state
  IsNaN Checks data in array element by element for NaNs, boolean array of results is returned
  NumNaN Returns the number of NaNs in the array
  AnyNaN Returns a boolean value indicating if the array contains any NaNs
  IsInf Checks data in array element by element for positive or negative infinity, boolean array of results is returned
  NumInf Returns the number of times positive or negative infinity occurs in the array
  AnyInf Returns a boolean value indicating if the array contains any positive or negative infinities
  IsPosInf Checks data in array element by element for positive infinity, boolean array of results is returned
  NumPosInf Returns the number of times positive infinity occurs in the array
  AnyPosInf Returns a boolean value indicating if the array contains any positive infinities
  IsNegInf Checks data in array element by element for negative infinity, boolean array of results is returned
  NumNegInf Returns the number of times negative infinity occurs in the array
  AnyNegInf Returns a boolean value indicating if the array contains any negative infinities

 

Data Creation Methods

Rand Creates an array filled with random numbers in a user specified range
  RandN Creates an array of random numbers with Gaussian characteristics
  Eye Creates an identity matrix
  NumSeq Creates a vector of numbers with a start, step, and end point
  NumFill Creates an array filled with a specified value
  MeshGrid Creates two 2D arrays of data from two sets of 1D inputs. Typically used to create x-y indicies for an array of data
  Initialize Allows user to explicitly set all values of an array
  NewJagged Creates a new jagged array

 

Information Extraction Methods

Min Returns the minimum value of the array (Note: -Infinity or NaN superscede real numbers in the min function and will always be returned if present)
  Max Returns the maximum value of the array (Note: +Infinity or NaN superscede real numbers in the max function and will always be returned if present)
  MaxAndMin Works the same was as min and max, but determines both values simultaneously. (Runs faster for large data sets, than running min and max separately)
  MinReal Returns the minimum value of the array (excluding -Infinity and NaN)
  MaxReal Returns the maximum value of the array (excluding +Infinity and NaN)
  Colormap Returns a bitmap of the data in a 2D array based on a user defined color scheme.