コード例 #1
0
ファイル: NoNoiseSource.cs プロジェクト: tjom/MIRPCADB
            /// <summary>
            /// Test method to (manually) check if the pca computations are correct.
            /// Prints the base vectors computed with a mirage generated covariance
            /// matrix and with the classical self-implemented covariance computation.
            /// </summary>
            private void PcaEigenvectorBasisTest()
            {
                Mirage.Matrix m = new Mirage.Matrix (3, 5);
                m.d [0, 0] = 0.2f;
                m.d [1, 0] = 14.5f;
                m.d [2, 0] = 166.0f;
                m.d [0, 1] = 1.5f;
                m.d [1, 1] = 20.5f;
                m.d [2, 1] = 233.0f;
                m.d [0, 2] = 0.8f;
                m.d [1, 2] = 16.2f;
                m.d [2, 2] = 189.0f;
                m.d [0, 3] = 2.3f;
                m.d [1, 3] = 11.7f;
                m.d [2, 3] = 139.0f;
                m.d [0, 4] = 1.7f;
                m.d [1, 4] = 17.9f;
                m.d [2, 4] = 206.0f;

                PCAnalyzer pca = new PCAnalyzer (m.Covariance (m.Mean ()));
                pca.PcaTest ();

                int i = -1;
                double[] data = { 0.2, 14.5, 166.0 };
                PCAnalyzer ana = new PCAnalyzer ();
                ana.AddEntry (i--, data);

                data = new double[] { 1.5, 20.5, 233.0 };
                ana.AddEntry (i--, data);
                data = new double[] { 0.8, 16.2, 189.0 };
                ana.AddEntry (i--, data);
                data = new double[] { 2.3, 11.7, 139.0 };
                ana.AddEntry (i--, data);
                data = new double[] { 1.7, 17.9, 206.0 };
                ana.AddEntry (i--, data);

                ana.PerformPCA ();
            }