/// <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 (); }