Home | Develop | Download | Contact
Vector.hpp
1 /*
2  * Vector.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 
35 #ifndef __PDS_VECTOR_HPP__
36 #define __PDS_VECTOR_HPP__
37 
38 
63 #include <Pds/Matrix>
64 #include <Pds/Size>
65 
66 #include <sstream> // std::ostringstream
67 
68 namespace Pds{
69 
77 class Vector: public Matrix
78 {
79 
80 public:
81 
91  Vector(void);
92 
98  Vector(unsigned int N);
99 
100 
124  Vector(const Pds::Size &S);
125 
146  Vector(const Pds::Matrix &B);
147 
161  Vector(const char *str);
162 
163 
177  Vector(const std::initializer_list<double> list);
178 
185  Vector(unsigned int N,double val);
186 
208  Vector(const Pds::Matrix &B,unsigned int col);
209 
231  Vector(double (*func)(double),const Pds::Vector &B );
232 
254  Vector(double (*func)(double),const Pds::Matrix &B );
255 
256 
270  Vector(Pds::Ra::FormatType Type,std::string filepath);
271 
273 
305  Pds::Vector Conv(const Pds::Vector &B, bool Same=false) const;
306 
324  Pds::Vector XCorr(const Pds::Vector &B, bool Same=false) const;
325 
345  Pds::Matrix MulTComp(double b,const Pds::Vector &B) const;
346 
362  Pds::Vector Unit(void) const;
363 
364 
382  bool Reshape(unsigned int Nlin,unsigned int Ncol);
383 
390  bool Reshape(unsigned int Nel);
391 
392 
403  bool FusionVer(std::list<Pds::Matrix> &list);
404 
405 
422  const double &operator[](const unsigned int &id) const
423  {
424  return this->array[id][0];
425  }
426 
427 
435  const double &GetRaw(unsigned int lin) const
436  {
437  return this->array[lin][0];
438  }
439 
440 
449  void SetRaw(unsigned int lin,const double &val)
450  {
451  this->array[lin][0]=val;
452  }
484  //Pds::Vector& operator = (const Pds::Vector &B);
485 
503  bool CopyRow(unsigned int lin, const Pds::Matrix &B);
504 
513  void ElementAddAssigRaw(unsigned int lin,const double &val)
514  {
515  this->array[lin][0]+=val;
516  }
521 }; // Class Vector
522 
523 } // namespace Pds
524 
525 
530 #endif
531 
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:86
double ** array
Definition: Matrix.hpp:89
La clase tipo Pds::Size . Esta clase genera un objeto con dos parametros Nlin y Ncol....
Definition: Size.hpp:58
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:78
FormatType
Tipo de dato en la carga de información desde archivo.
Definition: RaDefines.hpp:157
unsigned int Ncol(void) const
Retorna el numero de columnas de la matriz.
unsigned int Nlin(void) const
Retorna el numero de lineas de la matriz.
unsigned int Nel(void) const
Retorna el numero de elementos de la matriz (Nlin x Ncol).
void ElementAddAssigRaw(unsigned int lin, const double &val)
Suma un valor al contenido de un elemento lin (acumula). Elem+=val.
Definition: Vector.hpp:513
Vector(const Pds::Size &S)
Crea un objeto de tipo Pds::Vector con elementos inicializados con cero.
bool Reshape(unsigned int Nel)
Remodela los datos internos de la array y la convierte en una array de tamaño diferente,...
Vector(const Pds::Matrix &B)
Crea un objeto de tipo Pds::Vector copiando datos desde una matriz. Toda la matriz es vectorizada ley...
bool FusionVer(std::list< Pds::Matrix > &list)
Concatena verticalmente varias matrices. Si las matrices no tienen el mismo número de columnas se c...
Vector(unsigned int N)
Crea un objeto de tipo Pds::Vector.
Vector(const std::initializer_list< double > list)
Crea un objeto de tipo Pds::Vector copiando datos desde una lista.
const double & operator[](const unsigned int &id) const
Retorna el valor en cada posicion del vector (solo lectura).
Definition: Vector.hpp:422
Vector(Pds::Ra::FormatType Type, std::string filepath)
Crea un objeto de tipo Pds::Vector copiando datos desde un archivo.
Vector(unsigned int N, double val)
Crea un objeto de tipo Pds::Vector.
Pds::Matrix MulTComp(double b, const Pds::Vector &B) const
Multiplica con sigo mismo (A), la transpuesta de un vector [b;B] y el resultado es cargado en C.
bool Reshape(unsigned int Nlin, unsigned int Ncol)
Remodela los datos internos de la array y la convierte en una array de tamaño diferente,...
Pds::Vector Conv(const Pds::Vector &B, bool Same=false) const
Calcula la convolución entre A y B.
Pds::Vector Unit(void) const
Calcula el vector unitario de A.
Vector(const Pds::Matrix &B, unsigned int col)
Crea un objeto de tipo Pds::Vector copiando datos desde una columna de una matriz.
Vector(double(*func)(double), const Pds::Matrix &B)
Crea un objeto de tipo Pds::Vector, evaluando mediante una función, los datos de una matriz vectoriza...
Vector(const char *str)
Crea un objeto de tipo Pds::Vector copiando datos desde una cadena.
bool CopyRow(unsigned int lin, const Pds::Matrix &B)
Copia en si mismo (A), una matriz B. Este operador es similar al método Copy(). No importa el tamaño ...
Vector(void)
Crea un objeto de tipo Pds::Vector.
const double & GetRaw(unsigned int lin) const
Retorna una variable Datum en la posición (lin,0) de vector.
Definition: Vector.hpp:435
void SetRaw(unsigned int lin, const double &val)
Establece una variable Datum en la posición (lin,0) del vector.
Definition: Vector.hpp:449
Pds::Vector XCorr(const Pds::Vector &B, bool Same=false) const
Calcula la correlacion cruzada entre A y B.
Vector(double(*func)(double), const Pds::Vector &B)
Crea un objeto de tipo Pds::Vector, evaluando mediante una función, los datos de otro vector.
Nombre de espacion para PDS (Procesamiento Digital de Senales)
Definition: RaFile.hpp:46

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed