Ejemplo n.º 1
0
        public void WhiteningTest()
        {
            double[,] value =
            {
                { 0.4218, 0.6557, 0.6787, 0.6555 },
                { 0.9157, 0.0357, 0.7577, 0.1712 },
                { 0.7922, 0.8491, 0.7431, 0.7060 },
                { 0.9595, 0.9340, 0.3922, 0.0318 },
            };

            double[,] I = Matrix.Identity(3);
            double[,] T = null; // transformation matrix

            // Perform the whitening transform
            double[,] actual = Tools.Whitening(value, out T);

            // Check if covariance matrix has the identity form
            double[,] cov = Tools.Covariance(actual).Submatrix(0, 2, 0, 2);
            Assert.IsTrue(cov.IsEqual(I, 1e-10));

            // Check if we can transform the data
            double[,] result = value.Multiply(T);
            Assert.IsTrue(result.IsEqual(actual));
        }