diff --git a/src/shogun/preprocessor/PCA.cpp b/src/shogun/preprocessor/PCA.cpp index cbc3670075e..13cf7d6bd0b 100644 --- a/src/shogun/preprocessor/PCA.cpp +++ b/src/shogun/preprocessor/PCA.cpp @@ -186,8 +186,9 @@ SGMatrix CPCA::apply_to_feature_matrix(CFeatures* features) int32_t num_features = m.num_rows; SG_INFO("get Feature matrix: %ix%i\n", num_vectors, num_features) - MatrixXd final_feature_matrix; - + SGMatrix result_matrix = SGMatrix(num_dim, num_vectors); + Map final_feature_matrix(result_matrix.matrix, num_dim, num_vectors); + if (m.matrix) { SG_INFO("Preprocessing feature matrix\n") @@ -200,15 +201,7 @@ SGMatrix CPCA::apply_to_feature_matrix(CFeatures* features) m_transformation_matrix.num_rows, m_transformation_matrix.num_cols); final_feature_matrix = transform_matrix.transpose()*feature_matrix_centered; } - - SG_INFO("Copying eigen matrix to shogun matrix\n") - SGMatrix result_matrix = SGMatrix(num_dim, num_vectors); - for (int32_t c=0; c*) features)->set_feature_matrix(result_matrix); return result_matrix; } #endif //HAVE_EIGEN3