33 #ifndef __PDS_MATRIX_HPP__
34 #define __PDS_MATRIX_HPP__
67 #include <Pds/RaDefines>
68 #include <Pds/RegionRect>
98 friend class Array<double>;
99 friend class Array<unsigned int>;
100 friend class Array<unsigned char>;
212 template <
class Datum>
440 Matrix(
double (*func)(
double,
double,
double),
476 Matrix(
double (*func)(
double,
double,
double,
double),
513 Matrix(
double (*func)(
double,
double,
double,
double),
617 bool IsInRange(
unsigned int lin,
unsigned int col)
const;
975 unsigned int Nel(
void)
const;
999 unsigned int End(
void)
const;
1022 double Get(
unsigned int id)
const;
1032 double Get(
unsigned int lin,
unsigned int col)
const;
1043 const double &
GetRaw(
unsigned int lin,
unsigned int col)
const
1045 return this->array[lin][col];
1057 void SetRaw(
unsigned int lin,
unsigned int col,
const double &val)
1059 this->array[lin][col]=val;
1070 bool Set(
unsigned int id,
double val);
1081 bool Set(
unsigned int lin,
unsigned int col,
double val);
1091 double &
At(
unsigned int lin,
unsigned int col);
1100 double &
At(
unsigned int id);
1155 Pds::Matrix GetMatrix(
unsigned int lin_init,
unsigned int col_init,
unsigned int lin_end,
unsigned int col_end)
const;
1410 bool RowSwap(
unsigned int lin1,
unsigned int lin2);
1495 double Std(
double *mean=NULL)
const;
1535 double Var(
double *mean=NULL)
const;
1545 double Max(
unsigned int *
id=NULL)
const;
1572 double Min(
unsigned int *
id=NULL)
const;
2037 std::vector<unsigned int>
Find(
void)
const;
2110 bool Apply(
double (*func)(
double,
double),
double var);
2150 bool ApplyInCol(
unsigned int col,
double (*func)(
double,
double),
double var);
2345 double *corrn)
const;
2372 double *corrn)
const;
2572 bool Save(
const std::string &filepath)
const;
2581 bool Load(
const std::string &filepath);
2601 bool ExportCsvFile(
const std::string &filepath,std::vector<std::string> titles,
char delimitador=
',')
const;
2632 bool ExportBmpFile(
const unsigned char colormap[256][3],
const std::string &filepath)
const;
2684 const std::string &bmpfilename);
4316 template <
class Datum>
4330 template <
class Datum>
La clase tipo Array . Esta clase genera una agrupación de 2 datos. Para usar incluir Pds/Array.
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
La estructura tipo Pds::RegionRect . Esta estructura genera una region. Para usar incluir <Pds/Region...
La clase tipo Pds::Size . Esta clase genera un objeto con dos parametros Nlin y Ncol....
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
FormatType
Tipo de dato en la carga de información desde archivo.
bool IsEqualTo(const Pds::Matrix &B) const
Verifica si cada elemento de la matriz es igual a cada elemento de la matriz B.
Pds::Matrix Product(double(*func)(double), const Pds::Matrix &B) const
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz func(B) y el res...
bool ProductSelfMinus(const Pds::Matrix &B, double b)
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz (B-b) y el resul...
Pds::Matrix FilterMean3b(void) const
Procesa la matriz A usando un filtro mean de radio 1.
Matrix(unsigned int N)
Crea un objeto de tipo Pds::Matrix de N lineas y N columnas, con elementos inicializados con cero.
bool SetRowValue(unsigned int lin, double value)
Copia un valor en una linea de la matriz.
Pds::Matrix Mul(const Pds::Matrix &B) const
Multiplica con sigo mismo (A), una matriz B y el resultado es cargado en C. Este método es similar al...
bool FillLinSpace(double a, double b)
Inicializa la matriz con un espacio linear entre begin y end. Se inicializa primero una columna ante ...
static double ** ArrayAllocate(double(*func)(double, double, double, double), const Pds::Matrix &A, const Pds::Matrix &B, const Pds::Matrix &C, const Pds::Matrix &D)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
Pds::Matrix MulT(const Pds::Matrix &B) const
Multiplica con sigo mismo (A), la transpuesta de una matriz B y el resultado es cargado en C....
Pds::Matrix & operator-=(double b)
Resta y acumula en si mismo (A), un valor b. Este operador es similar al método SubAssig()
bool IsNotEmpty(void) const
Verifica si la matriz NO es nula, es decir con lineas y columnas diferentes cero y arreglo diferente ...
Pds::Matrix Resize(double factor) const
Retorna una matriz B (size: NlinB,NcolB) resultado de aplicar un subsampling de la matriz A (size: Nl...
bool Set(unsigned int lin, unsigned int col, double val)
Escribe el valor en la posición (lin,col), hace una verificación si la posición existe.
void MakeEmpty(void)
libera los datos internos de la matriz y la convierte en una matriz nula. es decir con lineas y colum...
Matrix(const Pds::Array< Datum > &B)
Crea un objeto de tipo Pds::Matrix copiando datos desde un arreglo.
bool Load(const std::string &filepath)
Lee de un archivo una matriz de Nlin lineas y Ncol columnas. Si la lectura es satisfactoria el conten...
bool ExportMatFile(const std::string &pname, const std::string &filepath) const
Escribe en un archivo binario en formato de octave la matriz. Es necesario dar un nombre como identif...
double MaxAbs(unsigned int *id=NULL) const
Calcula el máximo valor del valor absoluto de la matriz.
double BinaryEntropy(double umbral) const
Calcula la entropia binaria de la estadistica de {p0,p1}, la probabilidade de unos y ceros en la matr...
Pds::Matrix GetMatrix(unsigned int lin_init, unsigned int col_init, Pds::Size size) const
Retorna una sub matriz desde la posición (lin_init,col_init) hasta (lin_end,col_end),...
bool SaveInStream(std::ofstream &myfile) const
Escribe en un archivo de texto el contenido de la matriz.
bool IsGeq(double val) const
Verifica si cada elemento de la matriz es mayor a el valor val.
Pds::Matrix GetRows(unsigned int lin_init, unsigned int lin_end) const
Retorna una sub matriz escojida desde la linea lin_init hasta lin_end, inclusive. Hace una verificaci...
Pds::Matrix GetCols(std::vector< unsigned int > Vec) const
Retorna una sub matriz escojida desde una lista de indices de columnas. Hace una verificación si los ...
Pds::Array< unsigned int > IdInMultipleMse(const std::vector< Pds::Matrix > &Block) const
Calcula que linea de A es mas cercana a cada muestra de Block.
Pds::Matrix GetCols(unsigned int col_init, unsigned int col_end) const
Retorna una sub matriz escojida desde la columna col_init hasta col_end, inclusive....
std::vector< Pds::Matrix > FindRowsBlock(const Pds::Vector &B) const
Retorna dos nuevas matrices con las lineas donde existe un 0 (mat0) y un 1 (mat1) en la matriz B....
Pds::Matrix GetCols(std::list< unsigned int > List) const
Retorna una sub matriz escojida desde una lista de indices de columnas. Hace una verificación si los ...
double Rms(void) const
Calcula valor raiz quadrático medio de una matriz.
Pds::Vector GetColVector(unsigned int col) const
Retorna un vector columna copia de una columna de la matriz.
Matrix(Pds::Ra::FormatType Type, std::string filepath)
Crea un objeto de tipo Pds::Matrix copiando datos desde un archivo.
Pds::Matrix GetRow(unsigned int lin) const
Retorna una matriz linea escojida en la linea lin. Hace una verificación si la linea existe,...
Pds::Matrix Sub(const Pds::Matrix &B) const
[Elemento a elemento] Resta con sigo mismo (A), una matriz B y el resultado es cargado en C....
Pds::Vector GetRowAsColVector(unsigned int lin) const
Retorna un vector columna copia de una linea de la matriz.
Pds::Matrix Round(unsigned int decimal=0) const
Retorna una matriz con los valores redondeados.
bool StdAndMeanOfRegion(const Pds::RegionRect &Rin, double *std, double *mean) const
Calcula el desvío padrón y la media de los elementos de la intersección de la región con la matriz.
static Pds::Matrix GetSamples(const std::vector< Pds::Matrix > &Block)
Convierte las muestras de un bloque (std::vector<Pds::Matrix>) de N matrices (Pds::Matrix) de L eleme...
Pds::Matrix operator/(double b) const
[Elemento a elemento] Divide con sigo mismo (A), un valor b y el resultado es cargado en C....
bool MulComp(double b, const Pds::Vector &B, Pds::Vector &Out) const
Multiplica con sigo mismo (A), un vector [b;B] y el resultado es cargado en Out. Este método es simil...
bool NormalizeCols(Pds::Vector &Mean, Pds::Vector &Std)
Calcula la media y el standard deviation de cada columna de la matriz. Si el std de la columna es cer...
Pds::Matrix BalancedBinaryWeight(double umbral) const
Retorna una matriz de pesos para balancear la cantidad de 1s y 0s en la matriz. Los unos y ceros en l...
double MeanAbsolute(void) const
Calcula valor absoluto medio de una matriz.
static double ** ArrayAllocate(double(*func)(double), const Pds::Matrix &A)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
Pds::Matrix EqualTo(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es identico a un valor b y el resultado es c...
bool ApplySub(const Pds::Matrix &B, const Pds::Matrix &C)
Aplica la función func a cada elemento de la diferencia de matrices.
double Mean(void) const
Calcula el valor medio de la matriz.
bool RowReduction(void)
Convierte la matriz en una matriz reducida.
static Pds::Matrix GetSamples(const std::vector< Pds::Matrix > &Block, const std::vector< unsigned int > Id)
Convierte M muestras de un bloque (std::vector<Pds::Matrix>) de N matrices (Pds::Matrix) de L element...
Matrix(double(*func)(double, double, double, double), const Pds::Matrix &X, const Pds::Matrix &Y, const Pds::Matrix &Z, double var)
Crea un objeto de tipo Pds::Matrix, evaluando mediante una función, los datos de otra matriz.
double Accuracy(const Pds::Matrix &B, double Umbral) const
Calcula el valor de la Accuracy entre los elementos de las matrices A (Self) y B. Antes de comprarar ...
bool IsMulBy(const Pds::Matrix &B) const
Verifica si las matrices son multiplicables.
Matrix(unsigned int Nlin, unsigned int Ncol)
Crea un objeto de tipo Pds::Matrix con elementos inicializados con cero.
bool SubAssig(double b)
Resta y acumula en si mismo (A), un valor b. Este es similar al operador -=.
double Bilinear(double lin, double col) const
Retorna el valor en la posición (lin,col), usando una interpolación bilinear, valores fuera del rango...
bool IsSimilarTo(const Pds::Matrix &B) const
Verifica si las matrices son similares en tamaño.
Pds::Matrix & operator*=(double b)
Multiplica y acumula en si mismo (A), un valor b. Este operador es similar al método MulAssig()
static Pds::Matrix MeanBlock(const std::vector< Pds::Matrix > &Block)
Calcula A,la matriz media de un conjunto de N matrizes agrupadas en un std::vector.
double & At(unsigned int lin, unsigned int col)
Retorna una variable double en la posición (lin,col) de la matriz. Hace una verificación para evitar ...
bool IsEqualTo(double val) const
Verifica si cada elemento de la matriz es igual a el valor val.
Matrix(double(*func)(double, double, double), const Pds::Matrix &B, const Pds::Matrix &C, double var)
Crea un objeto de tipo Pds::Matrix, evaluando mediante una función, los datos de otra matriz.
Pds::Matrix EqualToFinite(void) const
Verifica si la matriz tiene elementos con valores finitos (no +inf, no -inf y no NAN).
Pds::Matrix DivBelow(double b) const
[Elemento a elemento] Divide con sigo mismo (A), un valor b y el resultado es cargado en C....
bool CopyRegion(const Pds::RegionRect &Rin, const Pds::RegionRect &Rout, Pds::Matrix &Mout) const
Copia la región Rin de la matriz a la región Rout de la matriz Mout.
bool AddAssig(const Pds::Matrix &B)
Suma y acumula en si mismo (A), una matriz B. Este es similar al perador +=.
void Print(std::string str) const
Imprime en pantalla el contenido de la matriz después del texto indicado en str.
bool CorrNormRegions(const Pds::Matrix &M1, const Pds::RegionRect &R0, const Pds::RegionRect &R1, double means0, double means1, double *corrn) const
Calcula correlación normalizada entre los elementos de la intersección de la regiones con sus matrice...
bool FillRandU(void)
Inicializa la matriz con números aleatórios, distribuidos uniformemente, desde 0 a 1....
Pds::Matrix operator-(void) const
Cambia de signo a si mismo (A), el resultado es cargado en B. Este operador es similar al método unar...
double Corr(const Pds::Matrix &B) const
Calcula la correlación de Pearson con la matriz.
Pds::Matrix TMul(const Pds::Matrix &B) const
Multiplica con la transpuesta de sí mismo (A^T), la matriz B y el resultado es cargado en C....
bool RowMulAssig(unsigned int lin, double alpha)
Multiplica la linea lin por alpha.
bool HasInf(void) const
Verifica si la matriz tiene algun valor infinito.
bool Apply(double(*func)(double))
Aplica la función func a cada elemento de la matriz.
double Min(unsigned int *id=NULL) const
Calcula el mínimo valor de la matriz.
bool IsNotMulBy(const Pds::Matrix &B) const
Verifica si las matrices son multiplicables.
bool SetMatrix(unsigned int lin, unsigned int col, const Pds::Matrix &B)
Copia en si mismo (A) en la posicion (lin,col), el contenido de una matriz B. Si a matriz B no cabe e...
Pds::Matrix Div(const Pds::Matrix &B) const
[Elemento a elemento] Divide con sigo mismo (A), elemento a elemento, una matriz B y el resultado es ...
Pds::Matrix Div(double b) const
[Elemento a elemento] Divide con sigo mismo (A), un valor b y el resultado es cargado en C....
bool SetRowVector(unsigned int lin, const Pds::Vector &X)
Copia un vector en una linea de la matriz.
bool AddAssigAt(unsigned int lin, unsigned int col, const Pds::Matrix &B)
Suma y acumula en si mismo (A), una matriz B desde un punto (lin,col) haciendo una intersección.
bool GetRowAsColVector(unsigned int lin, Pds::Vector &V) const
Retorna un vector columna copia de una linea de la matriz.
static std::vector< Pds::Matrix > ImportBmpFile(const std::string &bmpfilename)
Lee matrices de un archivo binario en formato BMP.
bool SetDiagonal(const Pds::Vector V)
Copia un vector columna en una diagonal de la matriz. Si los tamaños son diferentes,...
Pds::Matrix operator*(double b, const Pds::Matrix &A)
Multiplica b con (A), el resultado es cargado en C. Este operador es similar al método Mul()
bool Apply(double(*func)(double, double), double var)
Aplica la función func a cada elemento de la matriz.
double SumSquare(void) const
Calcula valor de la suma quadrática de una matriz.
bool MeanStdInCols(Pds::Matrix &Mean, Pds::Matrix &Std) const
Calcula la media y el standard deviation de cada linea de la matriz.
Matrix(const Pds::Size &S)
Crea un objeto de tipo Pds::Matrix con elementos inicializados con cero.
double & At(unsigned int id)
Retorna una variable double en la posición (id) de la matriz. Hace una verificación para evitar leer ...
bool IsColMatrix(void) const
Verifica si la matriz tiene solo una columna.
double MeanSquare(void) const
Calcula valor quadrático medio de una matriz.
Pds::Matrix Sub(double b) const
[Elemento a elemento] Resta con sigo mismo (A), una valor b y el resultado es cargado en C....
double MeanSquareOfRegion(const Pds::RegionRect &Rin) const
Calcula la media del cuadrado de los elementos en la region, pero para que sea calculado debe existir...
bool MeanSquareOfRegion(const Pds::RegionRect &Rin, double *mean) const
Calcula la media del cuadrado de los elementos en la region, pero para que sea calculado debe existir...
bool Copy(double val)
Copia en si mismo (A), el valor val. Este método es similar a usar el operador = ....
bool HasNotFinite(void) const
Verifica si la matriz tiene elementos no finitos (+inf, -inf y NAN).
bool IsInSizeRange(double lin, double col) const
Verifica si la posición (lin,col) pertenece al rango de la matriz.
Matrix(void)
Crea un objeto de tipo Pds::Matrix vacio.
double Sum(void) const
Calcula el valor de la suma de elementos de la matriz.
bool IsGeq(const Pds::Matrix &B) const
Verifica si cada elemento de la matriz es mayor igual a cada elemento de la matriz B.
double PNorm1(void) const
Calcula la 1-norm de un vector.
Pds::Matrix GetRowsRand(unsigned int N) const
Retorna una sub matriz escojiendo N lineas aleatoriamente (sin repetición).
Pds::Matrix NotEqualTo(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) no es identico a un valor b y el resultado e...
static bool ExportBmpFile(const Pds::Matrix &R, const Pds::Matrix &G, const Pds::Matrix &B, const std::string &bmpfilename)
Escribe en una matriz en un archivo binario en formato BMP. Losdatos deben ir de 0 a 255,...
Pds::Matrix GetRows(std::list< unsigned int > List) const
Retorna una sub matriz escojida desde una lista de indices de lineas. Hace una verificación si los in...
Pds::Matrix T(void) const
Transpuesta de si mismo (A), el resultado es cargado en B.
double Rf(const Pds::Matrix &Y) const
Calcula o .
Pds::Matrix Add(const Pds::Matrix &B) const
[Elemento a elemento] Suma con sigo mismo (A), una matriz B y el resultado es cargado en C....
Pds::Matrix Geq(Pds::Matrix B) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es mayor que un valor (B) y el resultado es ...
Pds::Matrix MtM(void) const
Retorna A.T()*A cargado en B.
bool IsInRange(unsigned int lin, unsigned int col) const
Verifica si la posición pertenece a la matriz.
static double ** ArrayAllocate(double(*func)(double, double, double, double), const Pds::Matrix &A, const Pds::Matrix &B, const Pds::Matrix &C, double var)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
bool ProductSelfPlus(double b, const Pds::Matrix &B)
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz (b+B) y el resul...
static double ** ArrayAllocate(double(*func)(double, double), const Pds::Matrix &A, const Pds::Matrix &B)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
Pds::Matrix MultipleMse(const Pds::Matrix &B) const
Calcula el error quadrático medio de cada linea de A con cada linea de B.
double Max(unsigned int *id=NULL) const
Calcula el máximo valor de la matriz.
double MinAbs(unsigned int *id=NULL) const
Calcula el mínimo valor del valor absoluto de la matriz.
bool FillRandC(double p1)
Inicializa la matriz con números aleatórios unos y ceros, la probabilidad de 1 es p1.
bool SetColVector(unsigned int col, const Pds::Vector V)
Copia un vector columna en una columna de la matriz. Si los tamaños son diferentes,...
bool SubAssig(const Pds::Matrix &B)
Resta y acumula en si mismo (A), una matriz B. Este es similar al operador -=.
Pds::Matrix operator+(double b, const Pds::Matrix &A)
Suma b con (A), el resultado es cargado en C. Este operador es similar al método Add()
bool Copy(const Pds::Array< Datum > &B)
Copia en si mismo (A), el contenido de una Array B. Este método es similar a usar el operador = ....
unsigned int Ncol(void) const
Retorna el numero de columnas de la matriz.
double Dot(const Pds::Matrix &B) const
Calcula el producto punto entre dos matrices.
double P1Probability(double umbral) const
Calcula la probabilidad binaria {p1}, la probabilidade en relación a los unos y ceros en la matriz de...
std::ostream & operator<<(std::ostream &out, const Pds::Matrix &mat)
Retorna el contenido de la matriz por la salida estándar.
Pds::Matrix MulComp(double b, const Pds::Vector &B) const
Multiplica con sigo mismo (A), un vector [b;B] y el resultado es cargado en C. Este método es similar...
bool Apply(double(*func)(double), const Pds::Matrix &B)
Aplica la función func a cada elemento de la matriz.
Pds::Matrix Scale(double minval, double maxval) const
Rescala linearmente los datos desde minval a maxval.
Pds::Matrix MultipleMse(const std::vector< Pds::Matrix > &Block) const
Calcula el error quadrático medio de cada linea de A con cada muestra en el bloque Block.
bool Save(const std::string &filepath) const
Escribe en un archivo de texto el contenido de la matriz.
static double ** ArrayAllocate(double(*func)(double, double, double), const Pds::Matrix &A, const Pds::Matrix &B, const Pds::Matrix &C)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
Pds::Matrix operator-(double b, const Pds::Matrix &A)
Resta b con (A), el resultado es cargado en C. Este operador es similar al método Add()
bool AddAssig(double b)
Suma y acumula en si mismo (A), un valor b. Este es similar al perador +=.
Pds::Matrix MinInCols(std::vector< unsigned int > &Lin) const
Calcula el mínimo en cada columna de la matriz.
bool ProductSelf(const Pds::Matrix &B)
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz B y el resultado...
Pds::Matrix operator*(double b) const
Multiplica con sigo mismo (A), un valor b y el resultado es cargado en C. Este operador es similar al...
unsigned int LinEnd(void) const
Retorna el identificador de la ultima linea de la matriz.
bool ApplySub(double(*func)(double), const Pds::Matrix &B, const Pds::Matrix &C)
Aplica la función func a cada elemento de la diferencia de matrices.
Pds::Matrix Minus(void) const
Cambia de signo a si mismo (A), el resultado es cargado en B. Este método es similar al operador unar...
double MeanOfRegion(const Pds::RegionRect &Rin) const
Calcula la media de los elementos en la region, pero para que sea calculado debe existir una intersec...
Pds::Matrix SubRowMatrix(const Pds::Matrix &B) const
Resta con sigo mismo (A), una matriz B linea y el resultado es cargado en C. La unica linea de B es r...
bool Set(unsigned int id, double val)
Escribe el valor en la posición del índice id, hace una verificación si la posición existe.
Pds::Matrix operator&(const Pds::Matrix &B) const
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz B y el resultado...
Pds::Matrix Plus(void) const
Asigna el signo + a si mismo (A), el resultado es cargado en B. Este método es similar al operador un...
Pds::Matrix OperateCols(double(*func)(const Pds::Matrix &Col)) const
Opera la función func usando como entrada cada columna de la matriz.
bool MeanOfRegion(const Pds::RegionRect &Rin, double *mean) const
Calcula la media de los elementos en la region, pero para que sea calculado debe existir una intersec...
double Var(double *mean=NULL) const
Calcula el valor de la varianza de la matriz.
bool LoadFromStream(std::ifstream &ifs, unsigned int Nlin, unsigned int Ncol)
Lee de un archivo una matriz de Nlin lineas y Ncol columnas. Si la lectura es satisfactoria el conten...
Pds::RegionRect GetRegion(void) const
Retorna una variable Pds::RegionRect desde la posicion (0,0), con ancho y alto (Mat....
Pds::Array< unsigned int > IdInMultipleMse(const Pds::Matrix &B) const
Calcula que linea de A es mas cercana a cada linea de B.
int RowSwapBelow(unsigned int n)
Si el n-avo elemento de la diagonal es cero entonces intercambia la linea n de la matriz con cualquie...
Pds::Matrix MeanInCols(void) const
Calcula el valor medio de las columnas de la matriz.
bool SetColVector(unsigned int col, double(*func)(double), const Pds::Vector V)
Copia un vector columna en una columna de la matriz, despues de evaluar el vector en una funcion....
bool MeanStdInRows(Pds::Vector &Mean, Pds::Vector &Std) const
Calcula la media y el standard deviation de cada linea de la matriz.
Pds::Matrix Mul(const Pds::Vector &B) const
Multiplica con sigo mismo (A), un vector B y el resultado es cargado en C. Este método es similar al ...
Pds::Vector StdInRows(void) const
Calcula el standard deviation de cada linea de la matriz.
bool IsZero(void) const
Verifica si la matriz está llena de zeros.
bool HasNan(void) const
Verifica si la matriz tiene algun valor NAN (Not A Number).
bool ExportBmpFile(const unsigned char colormap[256][3], const std::string &filepath) const
Escribe en una matriz en un archivo binario en formato BMP. Losdatos deben ir de 0 a 255,...
bool IsRowMatrix(void) const
Verifica si la matriz tiene solo una linea.
void Print(void) const
Imprime en pantalla el contenido de la matriz.
Pds::Matrix FindRows(const Pds::Vector &B, double b) const
Retorna una nueva matriz con las lineas donde existe un 1 en la matriz B. En verdad B es binarizado i...
Pds::Vector Multiindex(const Pds::Vector &d) const
Dada una matriz es calculado el vector .
bool MulAssig(const Pds::Matrix &B)
Multiplica y acumula en si mismo (A), una matriz B. Este es similar al operador *=.
Pds::Matrix Leq(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es menor que un valor b y el resultado es ca...
Matrix(const Pds::Matrix &B)
Crea un objeto de tipo Pds::Matrix copiando datos desde otra matriz. Este es un Copy assignment const...
Pds::Matrix FindRows(const Pds::Vector &B) const
Retorna una nueva matriz con las lineas donde existe un 1 en la matriz B. En verdad B es binarizado i...
bool IsLeq(const Pds::Matrix &B) const
Verifica si cada elemento de la matriz es menor igual a cada elemento de la matriz B.
bool Fill(double val)
Inicializa la matriz con un valor constante.
bool RowSwap(unsigned int lin1, unsigned int lin2)
Intercambia los valores de las lineas de una matriz.
bool LoadLineFromStream(std::ifstream &ifs)
Lee una linea de un archivo y crea una matriz de Nlin=1 y Ncol columnas. Si la lectura es satisfactor...
unsigned int End(void) const
Retorna el identificador del ultimo elemento de la matriz.
Matrix(const std::string &str)
Crea un objeto de tipo Pds::Matrix copiando datos desde una std::string.
bool FillRandN(void)
Inicializa la matriz con números aleatórios, distribuidos usando una distribución Gaussiana normaliza...
double Get(unsigned int id) const
Retorna el valor en la posición del índice id, hace una verificación si la posición existe.
double Get(unsigned int lin, unsigned int col) const
Retorna el valor en la posición (lin,col), hace una verificación si la posición existe.
Pds::Matrix EqualTo(const Pds::Matrix &B) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es identico a un valor B y el resultado es c...
bool CorrPearsonRegions(const Pds::Matrix &M1, const Pds::RegionRect &R0, const Pds::RegionRect &R1, double *pcc) const
Calcula el coeficiente de correlación de Pearson (PCC) entre los elementos de la intersección de la r...
Pds::Matrix PInv(double *rcond=NULL) const
Procesa esta matriz A y retorna B la matriz pseudo inversa de Moore Penrose.
bool AddAssig(double alpha, const Pds::Matrix &B)
Suma y acumula en si mismo (A), una matriz B.
Pds::Matrix Mul(double b) const
Multiplica con sigo mismo (A), un valor b y el resultado es cargado en C. Este método es similar al o...
double InformationGain(const std::vector< Pds::Matrix > &A, double Umbral=0.5) const
Retorna el Information Gain entre si mismo B y {A[0],A[1],...,A[N-1]}. Antes de comprarar las matrice...
Pds::Matrix FilterMean3(void) const
Procesa la matriz A usando un filtro mean de radio 1.
bool CorrPearsonRegions(const Pds::Matrix &M1, const Pds::RegionRect &R0, const Pds::RegionRect &R1, double mean0, double mean1, double std0, double std1, double *pcc) const
Calcula el coeficiente de correlación de Pearson (PCC) entre los elementos de la intersección de la r...
Pds::Matrix operator+(void) const
Asigna el signo + a si mismo (A), el resultado es cargado en B. Este operador es similar al método un...
bool ExportCsvFile(const std::string &filepath, std::vector< std::string > titles, char delimitador=',') const
Escribe en un archivo de texto el contenido de la matriz usando un formato Csv (Comma Separated Value...
bool FillRandU(double a, double b)
Inicializa la matriz con números aleatórios, distribuidos uniformemente, desde a a b,...
bool SetColValue(unsigned int col, double value)
Copia un valor en una columna de la matriz.
bool FillId(void)
Inicializa la matriz con el valor de la posición de cada elemento.
bool InitRegion(Pds::RegionRect R, double val)
Inicializa la región R de la matriz con el valor val.
bool AddAssig(double alpha, const Pds::Matrix &B, double beta, const Pds::Matrix &C)
Suma y acumula en si mismo (A), una matriz B.
bool IsNotSimilarTo(const Pds::Matrix &B) const
Verifica si las matrices son similares en tamaño.
Pds::Matrix & operator=(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 ...
bool FillRandN(double U, double Sigma)
Inicializa la matriz con números aleatórios, distribuidos usando una distribución Gaussiana con media...
bool RowDivByAbsMax(void)
Normaliza cada linea de la matriz dividiendola por el maximo valor absoluto de la linea....
double Norm(void) const
Calcula la 2-norm de una matriz (Frobenius norm).
double Det(void) const
Calcula la determinante.
Pds::Vector HistogramNorm(int min=0, int max=255) const
Retorna un vector con el histograma desde min hasta max (valores enteros). Elementos con valores meno...
static double ** ArrayAllocate(double(*func)(double, double, double), const Pds::Matrix &A, const Pds::Matrix &B, double var)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
Pds::Matrix OperateRows(double(*func)(const Pds::Matrix &Row)) const
Opera la función func usando como entrada cada fila de la matriz.
const double & GetRaw(unsigned int lin, unsigned int col) const
Retorna una variable double en la posición (lin,col) de la array.
bool ExportCsvFile(const std::string &filepath, char delimitador=',') const
Escribe en un archivo de texto el contenido de la matriz usando un formato Csv (Comma Separated Value...
bool RowDivAssig(unsigned int lin, double alpha)
Divide la linea lin por alpha.
Pds::Matrix Pow(double val) const
[Elemento a elemento] Potencia asi mismo (A), elemento a elemento, con un valor val y el resultado es...
Pds::Matrix operator/(double b, const Pds::Matrix &A)
Divide b con (A), elemento a elemento y el resultado es cargado en C. Este operador es similar al mét...
Pds::Matrix Geq(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es mayor que un valor b y el resultado es ca...
double Mape(const Pds::Matrix &B) const
Calcula el error absoluto medio porcentual (Mean Absolute Percentage Error) de una matriz.
Matrix(double(*func)(double, double), const Pds::Matrix &B, const Pds::Matrix &C)
Crea un objeto de tipo Pds::Matrix, evaluando mediante una función, los datos de otra matriz.
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,...
bool IsNotInRange(unsigned int lin, unsigned int col) const
Verifica si la posición NO pertenece a la matriz.
Pds::Vector GetDiagonal(void) const
Retorna un vector columna copia de los valores de la diagonal de la matriz.
bool FillRandU(int a, int b)
Inicializa la matriz con números aleatórios, distribuidos uniformemente, desde a a b,...
Pds::Size Size(void) const
Retorna un objeto de tipo Pds::Size con el numero de lineas y columans.
Pds::Matrix MinInCols(Pds::Array< unsigned int > &Lin) const
Calcula el mínimo en cada columna de la matriz.
Pds::Matrix GetCol(unsigned int col) const
Retorna una matriz columna escojida en la columna col. Hace una verificación si la columna existe,...
Matrix(unsigned int Nlin, unsigned int Ncol, double val)
Crea un objeto de tipo Pds::Matrix con elementos inicializados con val.
std::string ToString(void) const
Convierte los datos de la matriz en un std::string.
Pds::Matrix & operator+=(double b)
Suma y acumula en si mismo (A), un valor b. Este operador es similar al método AddAssig()
Pds::Vector MeanInRows(void) const
Calcula la media de cada linea de la matriz.
Matrix(double(*func)(double, double, double, double), const Pds::Matrix &X, const Pds::Matrix &Y, const Pds::Matrix &Z, const Pds::Matrix &W)
Crea un objeto de tipo Pds::Matrix, evaluando mediante una función, los datos de otra matriz.
bool IsEmpty(void) const
Verifica si la matriz es nula es decir con lineas o columnas cero o arreglo NULL.
static Pds::Matrix FromString(const std::string &str)
Convierte un sdt::string a una Matriz de Nlin lineas y Ncol columnas.
bool MulAssig(double b)
Multiplica y acumula en si mismo (A), un valor b. Este es similar al operador *=.
Pds::Matrix XCorr(const Pds::Matrix &B, bool Same=false) const
Calcula la correlacion cruzada entre A y B.
Pds::Matrix EqualToInf(void) const
Verifica si la matriz tiene elementos con valores infinitos.
unsigned int Nlin(void) const
Retorna el numero de lineas de la matriz.
Pds::Matrix GetMatrix(unsigned int lin_init, unsigned int col_init, unsigned int lin_end, unsigned int col_end) const
Retorna una sub matriz desde la posición (lin_init,col_init) hasta (lin_end,col_end),...
bool ProductSelfMinus(double b, const Pds::Matrix &B)
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz (b-B) y el resul...
bool ApplyInCol(unsigned int col, double(*func)(double))
Aplica la función func a cada elemento de la columna col de la matriz.
bool Copy(const Pds::Matrix &B)
Copia en si mismo (A), el contenido de una matriz B. Este método es similar a usar el operador = ....
std::vector< unsigned int > Find(void) const
Retorna una lista de indices donde existe un 1 en la matriz A.
double R2(const Pds::Matrix &Y) const
Calcula el coeficiente de determinación o .
Pds::Matrix Pow(const Pds::Matrix &B) const
[Elemento a elemento]Potencia asi mismo (A), elemento a elemento, con una matriz B y el resultado es ...
Pds::Matrix GetColsRand(unsigned int N) const
Retorna una sub matriz escojiendo N columnas aleatoriamente (sin repetición).
bool ProductSelf(double b)
Multiplica con sigo mismo (A), un valor b y el resultado es cargado en A.
bool NormalizeColsWith(const Pds::Vector &Mean, const Pds::Vector &Std)
Normaliza cada columna de la matriz usando la media y el standard deviation de cada columna de la mat...
unsigned int Nel(void) const
Retorna el numero de elementos de la matriz (Nlin x Ncol).
Pds::Matrix AddRowMatrix(const Pds::Matrix &B) const
Suma con sigo mismo (A), una matriz B linea y el resultado es cargado en C. La unica linea de B es su...
bool RowAddAssig(unsigned int lin1, unsigned int lin2, double alpha)
Multiplica los valores de la linea lin2 por alfa y el resultado es sumado a los valores de la linea l...
Pds::Matrix operator/(const Pds::Matrix &B) const
[Elemento a elemento] Divide con sigo mismo (A), elemento a elemento, una matriz B y el resultado es ...
bool CorrNormRegions(const Pds::Matrix &M1, const Pds::RegionRect &R0, const Pds::RegionRect &R1, double *corrn) const
Calcula correlación normalizada entre los elementos de la intersección de la regiones con sus matrice...
bool FusionVer(std::list< Pds::Matrix > &list)
Concatena verticalmente varias matrices. Si las matrices no tienen el mismo número de columnas se c...
Pds::Matrix Product(const Pds::Matrix &B) const
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz B y el resultado...
bool ApplyInCol(unsigned int col, double(*func)(double, double), double var)
Aplica la función func a cada elemento de la columna col de la matriz.
static double ** ArrayAllocate(double(*func)(double, double), const Pds::Matrix &A, double var)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
Matrix(double(*func)(double, double), const Pds::Matrix &B, double var)
Crea un objeto de tipo Pds::Matrix, evaluando mediante una función, los datos de otra matriz.
Matrix(double(*func)(double), const Pds::Matrix &B)
Crea un objeto de tipo Pds::Matrix, evaluando mediante una función, los datos de otra matriz.
Matrix(double(*func)(double, double, double), const Pds::Matrix &X, const Pds::Matrix &Y, const Pds::Matrix &Z)
Crea un objeto de tipo Pds::Matrix, evaluando mediante una función, los datos de otra matriz.
void SetRaw(unsigned int lin, unsigned int col, const double &val)
Establece una variable double en la posición (lin,col) de la array.
Matrix(const char *str)
Crea un objeto de tipo Pds::Matrix copiando datos desde una cadena.
Pds::Matrix Leq(const Pds::Matrix &B) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es menor que un valor B y el resultado es ca...
Pds::Vector MaxAbsInRows(void) const
Retorna un vector con el maximo valor absoluto de cada linea.
Pds::Matrix FilterMean(unsigned int r) const
Procesa la matriz A usando un filtro mean de radio r.
Pds::Matrix GetRows(std::vector< unsigned int > Vec) const
Retorna una sub matriz escojida desde una lista de indices de lineas. Hace una verificación si los in...
unsigned int ColEnd(void) const
Retorna el identificador de la ultima columna de la matriz.
Pds::Matrix Inv(double *rcond=NULL) const
Retorna la matriz inversa.
bool IsLeq(double val) const
Verifica si cada elemento de la matriz es menor a el valor val.
Pds::Matrix EqualToNan(void) const
Verifica si la matriz tiene elementos con valores NAN (Not A Number).
double Std(double *mean=NULL) const
Calcula el valor del desvío padrón de la matriz.
Pds::Matrix Add(double b) const
[Elemento a elemento] Suma con sigo mismo (A), una valor b y el resultado es cargado en C....
bool SetColVector(unsigned int col, double(*func)(double, double), const Pds::Vector V, double var)
Copia un vector columna en una columna de la matriz, despues de evaluar el vector en una funcion....
Pds::Matrix NotEqualTo(const Pds::Matrix &B) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) no es identico a un valor B y el resultado e...
double PNormInf(void) const
Calcula la inf-norm de una matriz.
bool ProductSelf(double(*func)(double), const Pds::Matrix &B)
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz func(B) y el res...
Nombre de espacion para PDS (Procesamiento Digital de Senales)