// 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);
        }
Пример #2
0
 /// <summary>
 /// Transposes matrix.
 /// </summary>
 public virtual Matrix Transpose()
 {
     return(new Matrix(MatrixFunctions.Transpose(this.InnerMatrix)));
 }