/// <summary> /// Convert the matrix to a readable string. /// </summary> /// /// <param name="message">an optional message</param> /// <returns>A string.</returns> public string ToString(string message) { StringBuilder b = new StringBuilder(); b.Append("Matrix (" + MatrixMath.Rows(Values) + "x" + MatrixMath.Columns(Values) + ")" + (message.Length > 0 ? " - " : "") + message + "\n"); for (int r = 0; r < MatrixMath.Rows(Values); r++) { b.Append("["); for (int c = 0; c < MatrixMath.Columns(Values); c++) { b.Append(Values[r][c]); if (c + 1 != MatrixMath.Columns(Values)) { b.Append(", "); } } b.Append("]\n"); } return(b.ToString()); }
/// <summary> /// Create a new matrix object. /// </summary> /// <param name="rows">number of rows</param> /// <param name="columns">number of columns</param> public Matrix(int rows, int columns) { Values = MatrixMath.CreateMatrix(rows, columns); }
/// <summary> /// /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> public static Matrix Multiply(Matrix a, Matrix b) { return(new Matrix(MatrixMath.Multiply(a.Values, b.Values))); }
/// <summary> /// /// </summary> /// <param name="m"></param> /// <param name="scalar"></param> /// <returns></returns> public static Matrix Scale(Matrix m, float scalar) { return(new Matrix(MatrixMath.Scale(m.Values, scalar))); }
/// <summary> /// /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <param name="operation"></param> /// <returns></returns> public static Matrix ElementWiseOperation(Matrix a, Matrix b, ElementWiseOperation operation) { return(new Matrix(MatrixMath.ElementWiseOperation(a.Values, b.Values, operation))); }
/// <summary> /// Transpose a matrix and return a new object containing the result. /// </summary> /// <param name="m">the matrix</param> /// <returns>the transposed matrix</returns> public static Matrix Transpose(Matrix m) { return(new Matrix(MatrixMath.Transpose(m.Values))); }
/// <summary> /// Create a one column matrix from a vector. /// </summary> /// <param name="v">the vector</param> public Matrix(Vector v) { Values = MatrixMath.VectorToMatrix(v.Values); }
/// <summary> /// /// </summary> /// <param name="shape"></param> public Matrix(IMatrixShape shape) { Values = MatrixMath.CreateMatrix(shape.Rows, shape.Columns); }
public static bool CompareColumnsWithRows(float[][] a, float[][] b) { return(MatrixMath.Columns(a) == MatrixMath.Rows(b)); }