Xmipp
v3.23.11-Nereus
xmipp
libraries
dimred
pca.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
*
3
* Authors: Carlos Oscar Sorzano coss@cnb.csic.es (2013)
4
*
5
* Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2 of the License, or
10
* (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20
* 02111-1307 USA
21
*
22
* All comments concerning this program package may be sent to the
23
* e-mail address 'xmipp@cnb.csic.es'
24
***************************************************************************/
25
26
#include "
pca.h
"
27
28
void
PCA::reduceDimensionality
()
29
{
30
subtractColumnMeans
(*
X
);
31
32
Matrix2D<double>
C, M;
33
matrixOperation_AtA
(*
X
,C);
34
35
Matrix1D<double>
lambda
;
36
firstEigs
(C,
outputDim
, lambda, M);
37
38
Y
=*
X
*M;
39
if
(
fnMapping
!=
""
)
40
M.
write
(
fnMapping
);
41
}
subtractColumnMeans
void subtractColumnMeans(Matrix2D< double > &A)
Definition:
matrix2d.cpp:230
DimRedAlgorithm::Y
Matrix2D< double > Y
Output data.
Definition:
dimred_tools.h:147
DimRedAlgorithm::X
Matrix2D< double > * X
Pointer to input data.
Definition:
dimred_tools.h:141
matrixOperation_AtA
void matrixOperation_AtA(const Matrix2D< double > &A, Matrix2D< double > &B)
Definition:
matrix2d.cpp:436
DimRedAlgorithm::outputDim
size_t outputDim
Output dim.
Definition:
dimred_tools.h:144
pca.h
Matrix2D< double >
lambda
double * lambda
Definition:
numerical_recipes.cpp:4414
PCA::reduceDimensionality
void reduceDimensionality()
Reduce dimensionality.
Definition:
pca.cpp:28
firstEigs
void firstEigs(const Matrix2D< double > &A, size_t M, Matrix1D< double > &D, Matrix2D< double > &P, bool Pneeded)
Definition:
matrix2d.cpp:284
Matrix1D< double >
DimRedAlgorithm::fnMapping
FileName fnMapping
Save mapping.
Definition:
dimred_tools.h:153
Matrix2D::write
void write(const FileName &fn) const
Definition:
matrix2d.cpp:113
Generated by
1.8.13