Home | Develop | Download | Contact
Namespaces | Estructuras de datos
Métodos Pds::Vector

Metodos de la clase Pds::Vector, un vector columna/matriz. Más...

Namespaces

namespace  Pds
 Nombre de espacion para PDS (Procesamiento Digital de Senales)
 

Estructuras de datos

class  Pds::Vector
 La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna. Para usar incluir Pds/Vector. Más...
 

Varios tipos de constructores

Crean una objeto Pds::Vector

 Pds::Vector::Vector (void)
 Crea un objeto de tipo Pds::Vector. Más...
 
 Pds::Vector::Vector (unsigned int N)
 Crea un objeto de tipo Pds::Vector. Más...
 
 Pds::Vector::Vector (const Pds::Size &S)
 Crea un objeto de tipo Pds::Vector con elementos inicializados con cero. Más...
 
 Pds::Vector::Vector (const Pds::Matrix &B)
 Crea un objeto de tipo Pds::Vector copiando datos desde una matriz. Toda la matriz es vectorizada leyendo columna a columna. Más...
 
template<class Datum >
 Pds::Vector::Vector (const Pds::Array< Datum > &B)
 Crea un objeto de tipo Pds::Vector copiando datos desde un arreglo. Más...
 
 Pds::Vector::Vector (const char *str)
 Crea un objeto de tipo Pds::Vector copiando datos desde una cadena. Más...
 
 Pds::Vector::Vector (const std::initializer_list< double > list)
 Crea un objeto de tipo Pds::Vector copiando datos desde una lista. Más...
 
 Pds::Vector::Vector (unsigned int N, double val)
 Crea un objeto de tipo Pds::Vector. Más...
 
 Pds::Vector::Vector (const Pds::Matrix &B, unsigned int col)
 Crea un objeto de tipo Pds::Vector copiando datos desde una columna de una matriz. Más...
 
 Pds::Vector::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. Más...
 
 Pds::Vector::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 vectorizada. Más...
 
 Pds::Vector::Vector (Pds::Ra::FormatType Type, std::string filepath)
 Crea un objeto de tipo Pds::Vector copiando datos desde un archivo. Más...
 
 Pds::Vector::~Vector ()
 

Operadores binarios.

Pds::Vector Pds::Vector::Conv (const Pds::Vector &B, bool Same=false) const
 Calcula la convolución entre A y B. Más...
 
Pds::Vector Pds::Vector::XCorr (const Pds::Vector &B, bool Same=false) const
 Calcula la correlacion cruzada entre A y B. Más...
 
Pds::Matrix Pds::Vector::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.
Más...
 

Operadores unarios.

Pds::Vector Pds::Vector::Unit (void) const
 Calcula el vector unitario de A. Más...
 

Métodos para reordenar memoria con Pds::Vector.

bool Pds::Vector::Reshape (unsigned int Nlin, unsigned int Ncol)
 Remodela los datos internos de la array y la convierte en una array de tamaño diferente, los datos que faltan se rellenan con cero. Más...
 
bool Pds::Vector::Reshape (unsigned int Nel)
 Remodela los datos internos de la array y la convierte en una array de tamaño diferente, los datos que faltan se rellenan con cero. Más...
 
bool Pds::Vector::FusionVer (std::list< Pds::Matrix > &list)
 Concatena verticalmente varias matrices.
Si las matrices no tienen el mismo número de columnas se considera um error. Si las matrices no tienen un número de columnas igual a 1 da un error. Destruye las matrices en list. Este metodo es mas rapido que Pds::MergeVer(list) pues transplanta memoria. Más...
 

Métodos para ordenar Pds::Vector.

bool Pds::Vector::SortWith (Pds::Matrix &A)
 Ordena de forma ascendente un vector y se lleva consigo una matriz A ordenando tambien las filas de esta. Más...
 

Métodos get set con Pds::Vector.

const double & Pds::Vector::operator[] (const unsigned int &id) const
 Retorna el valor en cada posicion del vector (solo lectura). Más...
 
const double & Pds::Vector::GetRaw (unsigned int lin) const
 Retorna una variable Datum en la posición (lin,0) de vector. Más...
 
void Pds::Vector::SetRaw (unsigned int lin, const double &val)
 Establece una variable Datum en la posición (lin,0) del vector. Más...
 

Operadores binarios acumuladores y sus métodos equivalentes

Descripción de algunos operadores habilitados a trabajar con Pds::Vector.

bool Pds::Vector::Copy (const Pds::Matrix &B)
 Copia en si mismo (A), el contenido de una matriz B vectorizandola columana a columna. Este método es similar a usar el operador = . No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado. Más...
 
bool Pds::Vector::Vectorize (const Pds::Matrix &B)
 Copia en si mismo (A), el contenido de una matriz B vectorizandola columana a columna. Este método es equivalente a Copy(). Más...
 
bool Pds::Vector::CopyRow (unsigned int lin, const Pds::Matrix &B)
 Copia en si mismo (A), una linea de la matriz B. El tamaño de A debe ser el mismo que las columnas de B. Más...
 
void Pds::Vector::ElementAddAssigRaw (unsigned int lin, const double &val)
 Suma un valor al contenido de un elemento lin (acumula). Elem+=val. Más...
 

Descripción detallada

Metodos de la clase Pds::Vector, un vector columna/matriz.

#include <Pds/Vector>


Estas funciones trabajan con una matriz de la forma.

\[ \mathbf{A}=\left(\begin{matrix} a_{00} \\ a_{10} \\ \vdots \\ a_{(Nlin-2)0} \\ a_{(Nlin-1)0} \\ \end{matrix}\right) \]

\[ A\equiv [a_{i0}] \]

nlin es el número de lineas.

Informacion adicional puede ser encontrada en [1]

Documentación de las funciones

◆ Vector() [1/12]

Pds::Vector::Vector ( void  )

Crea un objeto de tipo Pds::Vector.

◆ Vector() [2/12]

Pds::Vector::Vector ( unsigned int  N)

Crea un objeto de tipo Pds::Vector.

Parámetros
[in]NEl numero de lineas del vector.

◆ Vector() [3/12]

Pds::Vector::Vector ( const Pds::Size S)

Crea un objeto de tipo Pds::Vector con elementos inicializados con cero.

\[ \mathbf{A}=\left(\begin{matrix} 0 \\ 0 \\ \vdots \\ 0 \\ 0 \\ \end{matrix}\right) \]

\[ A\equiv [0] \]

Para crear una matriz A de 6 filas y 1 columna:

Pds::Matrix B(2,3);
Pds::Vector A(B.Size());
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:86
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:78
Parámetros
[in]SEl tamaño del vector, en general el tamaño es S.Ncol*S.Nlin.

◆ Vector() [4/12]

Pds::Vector::Vector ( const Pds::Matrix B)

Crea un objeto de tipo Pds::Vector copiando datos desde una matriz. Toda la matriz es vectorizada leyendo columna a columna.

\[ B\equiv [b_{i,j}] \]

\[ \mathbf{A} \leftarrow \mathbf{B\{:\}} \]

Para crear una matriz A con copia de datos de una matriz B:

Pds::Matrix B(4,5);
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]BMatriz a copiar.

◆ Vector() [5/12]

template<class Datum >
Pds::Vector::Vector ( const Pds::Array< Datum > &  B)

Crea un objeto de tipo Pds::Vector copiando datos desde un arreglo.

\[ B\equiv [b_{i,j}] \]

\[ \mathbf{A} \leftarrow \mathbf{B} \]

Parámetros
[in]BArray a copiar.

◆ Vector() [6/12]

Pds::Vector::Vector ( const char *  str)

Crea un objeto de tipo Pds::Vector copiando datos desde una cadena.

Para crear una matriz A con los datos de una cadena:

Pds::Vector A="1 2 3\n4 5 6\n";
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
bool IsEmpty(void) const
Verifica si la matriz es nula es decir con lineas o columnas cero o arreglo NULL.
Parámetros
[in]strCadena a leer.

◆ Vector() [7/12]

Pds::Vector::Vector ( const std::initializer_list< double >  list)

Crea un objeto de tipo Pds::Vector copiando datos desde una lista.

Para crear una matriz A con los datos de una cadena:

Pds::Vector A={1, 2, 3, 4, 5 6};
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]listLista a leer.

◆ Vector() [8/12]

Pds::Vector::Vector ( unsigned int  N,
double  val 
)

Crea un objeto de tipo Pds::Vector.

Parámetros
[in]NEl numero de lineas del vector.
[in]valEl valor a inicializar.

◆ Vector() [9/12]

Pds::Vector::Vector ( const Pds::Matrix B,
unsigned int  col 
)

Crea un objeto de tipo Pds::Vector copiando datos desde una columna de una matriz.

\[ B\equiv [b_{i,j}] \]

\[ \mathbf{A} \leftarrow \mathbf{B\{:,col\}} \]

Para crear una matriz A con copia de datos de una matriz B:

Pds::Matrix B(4,5);
Pds::Vector A(B,2);
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]BMatriz a copiar.
[in]colcolumna a copiar.

◆ Vector() [10/12]

Pds::Vector::Vector ( double(*)(double)  func,
const Pds::Vector B 
)

Crea un objeto de tipo Pds::Vector, evaluando mediante una función, los datos de otro vector.

\[ B\equiv [b_{i,j}] \]

\[ \mathbf{A} \leftarrow func(\mathbf{B}) \]

Para crear un vector A , copia de sin(B):

Pds::Vector A(cos,B);
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]BVector a evaluar para copiar los resultados.
[in]funcFunción a aplicar, esta debe tener a forma double func(double).

◆ Vector() [11/12]

Pds::Vector::Vector ( double(*)(double)  func,
const Pds::Matrix B 
)

Crea un objeto de tipo Pds::Vector, evaluando mediante una función, los datos de una matriz vectorizada.

\[ B\equiv [b_{i,j}] \]

\[ B_{Nlin~Ncol,1} \leftarrow func(\mathbf{B(:)}) \]

Para crear un vector A , copia de sin(B(:)):

Pds::Vector A(cos,B);
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]BVector a evaluar para copiar los resultados.
[in]funcFunción a aplicar, esta debe tener a forma double func(double).

◆ Vector() [12/12]

Pds::Vector::Vector ( Pds::Ra::FormatType  Type,
std::string  filepath 
)

Crea un objeto de tipo Pds::Vector copiando datos desde un archivo.

Pds::Vector A(TEXT,"textfile.txt");
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]TypeTipo de archivo de fuente de datos.
[in]filepathPath del archivo cargado.

◆ Conv()

Pds::Vector Pds::Vector::Conv ( const Pds::Vector B,
bool  Same = false 
) const

Calcula la convolución entre A y B.

\[ \mathbf{A}\equiv [a_{i}]_{N,1} \overset{func}{\equiv} a(i),~0 \leq i\leq N-1 \]

\[ \mathbf{B}\equiv [b_{i}]_{M,1} \overset{func}{\equiv} b(i),~0 \leq i\leq M-1 \]

\[ \mathbf{C}\equiv [c_{i}]_{M+N-1,1} \overset{func}{\equiv} c(i),~0 \leq i\leq M+N-2\]

\[ c(l) \leftarrow \sum \limits_{k=-\infty}^{+\infty} a(l-k)b(k) \]

O seu equivalente

\[ c(l) \leftarrow \sum \limits_{k=-\infty}^{+\infty} a(k)b(l-k) \]

Parámetros
[in]BVector a aplicar la convolución.
[in]SameSi Same es igual a true entonces, $\mathbf{C}$ describe $[c_{i}]_{N,1} \overset{func}{\equiv} c(i), ~ 0 \leq i \leq N-1$. proveniente de um $\mathbf{B}$ como $[b_{i}]_{M,1} \overset{func}{\equiv} b(i-\left \lfloor M/2 \right \rfloor),~0 \leq i\leq M-1$. Por defecto Same es igual a false.
Devuelve
retorna la convolucion.
Ejemplos
example_vector_statistics.cpp.

◆ XCorr()

Pds::Vector Pds::Vector::XCorr ( const Pds::Vector B,
bool  Same = false 
) const

Calcula la correlacion cruzada entre A y B.

\[ \mathbf{A}\equiv [a_{i}]_{N,1} \overset{func}{\equiv} a(i),~0 \leq i\leq N-1 \]

\[ \mathbf{B}\equiv [b_{i}]_{M,1} \overset{func}{\equiv} b(i),~0 \leq i\leq M-1 \]

\[ \mathbf{C}\equiv [c_{i}]_{M+N-1,1} \overset{func}{\equiv} c(i-(M-1)),~ 0 \leq i \leq M+N-2 \]

\[ c(l) \leftarrow \sum \limits_{k=-\infty}^{+\infty} a(l+k) b(k) \]

O seu equivalente

\[ c(l) \leftarrow \sum \limits_{k=-\infty}^{+\infty} a(k) b(k-l) \]

Parámetros
[in]BVector a aplicar la correlacion cruzada.
[in]Sameindica si la correlación cruzada tendrá el mismo tamaño que A, si Same es igual a true entonces, $[c_{i}]_{N,1} \overset{func}{\equiv} c(i), ~0 \leq i \leq N-1$. Por defecto Same es igual a false.
Devuelve
retorna la correlacion cruzada.
Ejemplos
example_vector_statistics.cpp.

◆ MulTComp()

Pds::Matrix Pds::Vector::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.

\[ C \leftarrow A*[b;B]^T \]

Pds::Vector A="1 2 3 4";
Pds::Vector B="-1 2";
C=A.MulTComp(1,B);
std::cout<<C;
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.
Parámetros
[in]bEl pedazo de arriba del vector a multiplicar
[in]BEl pedazo de abajo del vector a multiplicar
Devuelve
Retorna C con el resultado, o una matriz vacía (this->IsEmpty() igual a true) en caso de error.

◆ Unit()

Pds::Vector Pds::Vector::Unit ( void  ) const

Calcula el vector unitario de A.

\[ \mathbf{B}\leftarrow \frac{\mathbf{A}}{||\mathbf{A}||} \]

Devuelve
retorna un vector unitario $\mathbf{B}$.

◆ Reshape() [1/2]

bool Pds::Vector::Reshape ( unsigned int  Nlin,
unsigned int  Ncol 
)

Remodela los datos internos de la array y la convierte en una array de tamaño diferente, los datos que faltan se rellenan con cero.

|warning Este método cambiar .Reshape(Nlin,Ncol) por .Reshape(Nlin*Ncol,1)

Parámetros
[in]NlinNúmero de lineas. Da error si el valor es cero.
[in]NcolNúmero de columnas. Da error si el valor es cero.

◆ Reshape() [2/2]

bool Pds::Vector::Reshape ( unsigned int  Nel)

Remodela los datos internos de la array y la convierte en una array de tamaño diferente, los datos que faltan se rellenan con cero.

Parámetros
[in]NelNúmero de lineas. Da error si el valor es cero.

◆ FusionVer()

bool Pds::Vector::FusionVer ( std::list< Pds::Matrix > &  list)

Concatena verticalmente varias matrices.
Si las matrices no tienen el mismo número de columnas se considera um error. Si las matrices no tienen un número de columnas igual a 1 da un error. Destruye las matrices en list. Este metodo es mas rapido que Pds::MergeVer(list) pues transplanta memoria.

Parámetros
[in]listLa lista de matrices a concatenar.
Devuelve
Retorna true en caso de enxito en la matriz concatenada o false y una matriz vacía en caso de error.

◆ SortWith()

bool Pds::Vector::SortWith ( Pds::Matrix A)

Ordena de forma ascendente un vector y se lleva consigo una matriz A ordenando tambien las filas de esta.

Parámetros
[in]AMatriz a ordenar acompañando el orden de las lineas del vector.
Devuelve
Retorna true si todo fue bien o false en caso de error, por ejemplo si las matrices están vacias o no tienen el mismo número de lineas.

◆ operator[]()

const double& Pds::Vector::operator[] ( const unsigned int &  id) const
inline

Retorna el valor en cada posicion del vector (solo lectura).

Atención
NO hace una verificación si el indice existe!!!!
Parámetros
[in]idIndice del vector.
Devuelve
Retorna el valor en cada posicion del vector.

Definición en la línea 466 del archivo Vector.hpp.

467  {
468  return this->array[id][0];
469  }
double ** array
Definition: Matrix.hpp:89

Hace referencia a Pds::Matrix::array.

◆ GetRaw()

const double& Pds::Vector::GetRaw ( unsigned int  lin) const
inline

Retorna una variable Datum en la posición (lin,0) de vector.

Atención
NO hace una verificación para evitar leer fuera de la memoria, por lo que dará errores de acceso si pedimos una posición inexistente.
Parámetros
[in]linLa linea en consulta.
Devuelve
Retorna una variable Datum en la posición (lin,0).

Definición en la línea 479 del archivo Vector.hpp.

480  {
481  return this->array[lin][0];
482  }

Hace referencia a Pds::Matrix::array.

◆ SetRaw()

void Pds::Vector::SetRaw ( unsigned int  lin,
const double &  val 
)
inline

Establece una variable Datum en la posición (lin,0) del vector.

Atención
NO hace una verificación para evitar leer fuera de la memoria, por lo que dará errores de acceso si pedimos una posición inexistente.
Parámetros
[in]linLa linea en consulta.
[in]valvalor a escribir.

Definición en la línea 492 del archivo Vector.hpp.

493  {
494  this->array[lin][0]=val;
495  }

Hace referencia a Pds::Matrix::array.

◆ Copy()

bool Pds::Vector::Copy ( const Pds::Matrix B)

Copia en si mismo (A), el contenido de una matriz B vectorizandola columana a columna. Este método es similar a usar el operador = . No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado.

\[ A \leftarrow B \]

Parámetros
[in]Bla matriz a copiar
Devuelve
Retorna true si todo fue bien o false si no. Si se retorna false el receptor no altera su contenido.
Ejemplos
example_vector_create.cpp.

Referenciado por Pds::Vector::Vectorize().

◆ Vectorize()

bool Pds::Vector::Vectorize ( const Pds::Matrix B)
inline

Copia en si mismo (A), el contenido de una matriz B vectorizandola columana a columna. Este método es equivalente a Copy().

\[ A \leftarrow B \]

Parámetros
[in]Bla matriz a copiar
Devuelve
Retorna true si todo fue bien o false si no. Si se retorna false el receptor no altera su contenido.

Definición en la línea 529 del archivo Vector.hpp.

530  {
531  return this->Copy(B);
532  }
bool Copy(const Pds::Matrix &B)
Copia en si mismo (A), el contenido de una matriz B vectorizandola columana a columna....

Hace referencia a Pds::Vector::Copy().

Gráfico de llamadas para esta función:

◆ CopyRow()

bool Pds::Vector::CopyRow ( unsigned int  lin,
const Pds::Matrix B 
)

Copia en si mismo (A), una linea de la matriz B. El tamaño de A debe ser el mismo que las columnas de B.

\[ A \leftarrow B(lin,:) \]

Cuando acontece:

Pds::Matrix B(3,4);
unsigned int lin=1;
A.CopyRow(lin,B);
Parámetros
[in]linLinea a copiar.
[in]BLa matriz fuente de copia.
Devuelve
Retorna true si todo fue bien o false si no.

◆ ElementAddAssigRaw()

void Pds::Vector::ElementAddAssigRaw ( unsigned int  lin,
const double &  val 
)
inline

Suma un valor al contenido de un elemento lin (acumula). Elem+=val.

Atención
NO hace una verificación para evitar leer fuera de la memoria, por lo que dará errores de acceso si pedimos una posición inexistente.
Parámetros
[in]linLa linea en consulta.
[in]valvalor a acumular.

Definición en la línea 561 del archivo Vector.hpp.

562  {
563  this->array[lin][0]+=val;
564  }

Hace referencia a Pds::Matrix::array.

◆ ~Vector()

Pds::Vector::~Vector ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed