// TODO: Test
        /// <summary>
        /// Creates projection matrix for the specified subspace.
        /// </summary>
        public static double[,] CreateProjectionMatrix(double[,] subspace)
        {
            var subspaceTranspose = MatrixFunctions.Transpose(subspace);

            double[,] value = MatrixFunctions.Multiply(subspaceTranspose, subspace);

            value = MatrixFunctions.Invert(value);

            value = MatrixFunctions.Multiply(value, subspaceTranspose);

            value = MatrixFunctions.Multiply(subspace, value);

            return(value);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Multiplies/scales matrix by a scalar input.
 /// </summary>
 public virtual Matrix Scale(double scalar)
 {
     return(new Matrix(MatrixFunctions.Multiply(scalar, this.InnerMatrix)));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Multiplies matrix by another.
 /// </summary>
 public virtual Matrix Multiply(double[,] matrix)
 {
     return(new Matrix(MatrixFunctions.Multiply(this.InnerMatrix, matrix)));
 }