Home | Develop | Download | Contact
PCA.hpp
1 /*
2  * PCA.hpp
3  *
4  * Copyright 2018 Fernando Pujaico Rivera <fernando.pujaico.rivera@gmail.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301, USA.
20  *
21  */
22 
32 #ifndef __PDS_PCA_HPP__
33 #define __PDS_PCA_HPP__
34 
35 
48 #include <Pds/Vector>
49 #include <Pds/IterationConf>
50 
51 #include <sstream> // std::ostringstream
52 
53 namespace Pds{
54 
62 class PCA
63 {
64 private:
66  Pds::Vector Lambda;
67 
69  Pds::Matrix V;
70 
71 public:
72 
82  PCA(void);
83 
95  PCA(const char filename[]);
96 
97 
109  PCA(const std::string &filename);
110 
128  PCA(const Pds::PCA &B);
129 
143  PCA(const Pds::Matrix &X);
144 
145  ~PCA();
146 
147 
153 public:
154 
165  Pds::Vector Transform(const Pds::Vector &x, unsigned int N) const;
166 
173  Pds::Matrix Transform(const Pds::Matrix &X, unsigned int N) const;
174 
179 public:
180 
191  bool ExportFile(const std::string &filename) const;
192 
197 public:
198 
212  bool IsEmpty(void) const;
213 
219  bool IsNotEmpty(void) const;
220 
225 public:
226 
254 
267  bool Copy(const Pds::PCA &B);
268 
269 
274 public:
275 
286  void MakeEmpty(void);
287 
292  unsigned int GetN(void) const;
293 
298  Pds::Vector GetLambda(void) const;
299 
304  Pds::Matrix GetV(void) const;
305 
310  void Print(std::string str="") const;
311 
316 }; // Class PCA
317 
318 } // namespace Pds
319 
320 
325 #endif
326 
La clase tipo Pds::PCA . Esta clase genera una matriz de Nlin lineas y 1 columna. Para usar incluir P...
Definition: PCA.hpp:63
Pds::Vector Lambda
Definition: PCA.hpp:66
Pds::Matrix V
Definition: PCA.hpp:69
unsigned int GetN(void) const
Retorna el tamaño del vector de salida.
PCA(const Pds::PCA &B)
Crea un objeto de tipo Pds::PCA copiando datos desde otra PCA. Este es un Copy assignment constructor...
PCA(const Pds::Matrix &X)
Crea un objeto de tipo Pds::PCA calculando los vectores y valores própios desde los vectores de entra...
Pds::Matrix Transform(const Pds::Matrix &X, unsigned int N) const
Evalua el objeto de tipo Pds::PCA.
Pds::Vector GetLambda(void) const
Retorna el vector de valores propios en orden ascendente.
void Print(std::string str="") const
Imprime en pantalla el contenido del PCA.
bool Copy(const Pds::PCA &B)
Copia en si mismo (A), el contenido de un PCA B. Este método es similar a usar el operador = ....
bool IsNotEmpty(void) const
Verifica si el PCA NO está vazio.
bool ExportFile(const std::string &filename) const
Salva en formato .txt el objeto de tipo Pds::PCA.
PCA(const char filename[])
Carga un vector de pesos desde un archivo de texto.
PCA(const std::string &filename)
Carga un vector de pesos desde un archivo de texto.
void MakeEmpty(void)
Convierte el PCS a vazio, es decir limpia todos los datos internos.
Pds::Vector Transform(const Pds::Vector &x, unsigned int N) const
Evalua el objeto de tipo Pds::PCA.
PCA(void)
Crea un objeto vazio de tipo Pds::PCA. El método IsEmpty() retorna true.
Pds::Matrix GetV(void) const
Retorna la matriz de vectores própios en las columnas.
bool IsEmpty(void) const
Verifica si el PCA está vazio.
Pds::PCA & operator=(const Pds::PCA &B)
Copia en si mismo (A), un PCA B. Este operador es similar al método Copy(). No importa el tamaño de A...
Nombre de espacio para Pds (Procesamiento Digital de Senales)

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed