33#ifndef __PDS_MATRIX_HPP__
34#define __PDS_MATRIX_HPP__
71#include <Pds/RaDefines>
72#include <Pds/RegionRect>
74#include <Pds/Colormap>
75#include <Pds/Position>
78#include <Pds/AbstractRV>
108 friend class Array<double>;
109 friend class Array<unsigned int>;
110 friend class Array<unsigned char>;
257 template <
class Datum>
485 Matrix(
double (*func)(
double,
double,
double),
521 Matrix(
double (*func)(
double,
double,
double,
double),
558 Matrix(
double (*func)(
double,
double,
double,
double),
600 Matrix(
const std::vector<Pds::Point2D> &P);
619 Matrix(
const std::vector<Pds::Position> &P);
647 template <
class Datum>
679 template <
class Datum>
707 template <
class Datum>
708 Matrix(
const std::initializer_list<Datum> &list);
790 bool IsInRange(
unsigned int lin,
unsigned int col)
const;
1170 template <
class Datum>
1171 bool Fill(
const std::vector<Datum> &P);
1266 double Get(
unsigned int id)
const;
1276 double Get(
unsigned int lin,
unsigned int col)
const;
1305 const double &
GetRaw(
unsigned int lin,
unsigned int col)
const
1307 return this->array[lin][col];
1319 void SetRaw(
unsigned int lin,
unsigned int col,
const double &val)
1321 this->array[lin][col]=val;
1332 bool Set(
unsigned int id,
double val);
1343 bool Set(
unsigned int lin,
unsigned int col,
double val);
1353 double &
In(
unsigned int lin,
unsigned int col);
1362 double &
In(
unsigned int id);
1424 Pds::Matrix GetMatrix(
unsigned int lin_init,
unsigned int col_init,
unsigned int lin_end,
unsigned int col_end)
const;
1739 bool RowSwap(
unsigned int lin1,
unsigned int lin2);
1847 double Std(
double *mean=NULL)
const;
1894 double Var(
double *mean=NULL)
const;
1904 double Max(
unsigned int *
id=NULL)
const;
1914 double Min(
unsigned int *
id=NULL)
const;
2600 const std::vector<unsigned int> &Strides,
2685 const std::vector<unsigned int> &Strides={1,1},
2773 const std::vector<unsigned int> &Strides={1,1},
3474 unsigned int MaxIter=20000,
3475 bool EmptyWhenError=
true)
const;
3534 unsigned int MaxIter=20000,
3535 bool EmptyWhenError=
true)
const;
3594 std::vector<unsigned int>
Find(
void)
const;
3611 std::vector<unsigned int>
FindIdOfKMin(
unsigned int K,std::vector<double> &dat)
const;
3742 bool Apply(
double (*func)(
double,
double),
double var);
3753 bool Apply(
double (*func)(
double,
const std::vector<double> &),
const std::vector<double> &var);
3840 bool ApplyInCol(
unsigned int col,
double (*func)(
double,
double),
double var);
4007 const std::vector<double> &var)
const;
4295 double *corrn)
const;
4322 double *corrn)
const;
4428 std::string
ToString(
const std::string &EndData)
const;
4436 void Print(
const std::string &str,
unsigned int precision)
const;
4443 void Print(
const std::string &str)
const;
4604 bool Save(
const std::string &filepath)
const;
4632 bool Load(
const std::string &filepath);
4690 bool ExportCsvFile(
const std::string &filepath,std::vector<std::string> titles,
char delimitador=
',')
const;
4723 bool ImportCsvFile(
const std::string &filepath,
char delimitador,std::vector<std::string> &titles);
4801 const std::vector<std::string> &titles,
4802 const std::vector<std::string> &rowtitles,
4803 const std::string &caption=
"My caption",
4804 const std::string &label=
"mylabel")
const;
4836 const std::vector<std::string> &titles,
4837 const std::string &caption=
"My caption",
4838 const std::string &label=
"mylabel")
const;
4871 const std::string &caption=
"My caption",
4872 const std::string &label=
"mylabel")
const;
5165 bool ExportBmpFile(
const unsigned char colormap[256][3],
const std::string &filepath)
const;
5204 static bool FunctionCh3ToCh3(
void (*func)(
double a1,
double a2,
double a3,
double &b1,
double &b2,
double &b3),
5269 unsigned int LinPool,
5270 unsigned int ColPool);
5373 const std::string &bmpfilename);
5384 const std::string &filename,
5385 unsigned int delay=100,
5514 static bool IsBatchBlock(
const std::vector<std::vector<Pds::Matrix>> &Tensor);
7315 this->array[lin][col]=this->array[lin][col]+b;
7765 template <
class Datum>
7779 template <
class Datum>
7862 std::vector<unsigned int>
7865 std::vector<double> &D2)
const;
7924 std::vector<unsigned int>
La clase tipo Pds::AbstractRV . Esta es una clase abstracta para toda la familia de random variables....
La clase tipo Array . Esta clase genera una agrupación de 2 datos. Para usar incluir Pds/Array.
La clase tipo Pds::Json . Esta clase genera una estructura capaz de almacenar datos del formato Json....
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
La estructura tipo Pds::Position . Esta estructura genera una posicion. Para usar incluir <Pds/Positi...
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.
Padding
Tipo de dato que especifica el padding en la convolucion.
bool IsEqualTo(const Pds::Matrix &B) const
Verifica si cada elemento de la matriz es igual a cada elemento de la matriz B.
bool ProductAssigMinus(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 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...
Pds::Vector Histogram(unsigned int L) const
Retorna un vector con um histograma de elementos espaciados . Elementos con valores menores a o may...
Pds::Vector EigenVector_RegInvIter(double lambda, const Pds::Vector &v0, unsigned int MaxIter=20000, bool EmptyWhenError=true) const
Calcula un autovector (Eigenvector) de una matriz . Internamente usa version regularizada del algorit...
Matrix(unsigned int N)
Crea un objeto de tipo Pds::Matrix de N lineas y N columnas, con elementos inicializados con cero.
std::vector< Pds::Matrix > FindRowsBlock(const Pds::Vector &V) const
Retorna un vector de matrices con las lineas donde existe un mismo id en el vector ....
bool SetRowValue(unsigned int lin, double value)
Copia un valor en una linea de la matriz.
bool ProductAssig(double b)
Multiplica con sigo mismo (A), un valor b y el resultado es cargado en A.
double MinOfDiag(void) const
Retorna el valor mínimo de la diagonal de una matriz cuadrada .
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 ...
Pds::Matrix CholeskyCrout(void) const
Dada una matriz simétrica definida positiva , este método realiza la descomposición Cholesky,...
Pds::Matrix Xor(const Pds::Matrix &B, double Umbral=0.5) const
[Elemento a elemento] Xor con sigo mismo (A), una matriz B y el resultado es cargado en C.
bool FillBcd(unsigned int n)
Escribe un número en digital codificado en binário (BCD), escribe primero en una columna entera y lue...
bool Apply(double Alpha, const Pds::Matrix &B)
Aplica la función func a cada elemento de la matriz. La matriz que recibe debe tener el mismo tamaño ...
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::Vector EigenValues(unsigned int MaxIter=2048, double MinFactor=0.00001, bool SortAsc=true) const
Calcula los valores própios (Eigenvalues) de una matriz siguiendo el algoritmo shift QR,...
bool SubAssig(double beta, const Pds::Matrix &B)
Resta y acumula en si mismo (A), una matriz B. Este es similar al operador -=.
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::Vector MultiIndex(const Pds::Vector &d) const
Dada una matriz es calculado el vector .
Pds::Matrix Resize(double factor) const
Retorna una matriz B (size: NlinB,NcolB) resultado de aplicar un subsampling de la matriz A (size: Nl...
static std::vector< Pds::Matrix > ImportSampleBlockXmlFromString(const std::string &str)
Carga el contenido de una std::vector<Pds::Matrix> desde un std::string en formato Xml.
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.
static std::string ExportBatchBlockXmlToString(const std::vector< std::vector< Pds::Matrix > > &Block)
Retorna un std::string en formato Xml con el contenido del BatchBlock.
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 desde un archivo una matriz de Nlin lineas y Ncol columnas.
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 y , la probabilidade de unos y ceros en la matriz d...
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),...
Pds::Matrix MaxPooling(unsigned int LinPool, unsigned int ColPool) const
Aplica max pooling de la matriz de lineas y columnas.
bool SaveInStream(std::ofstream &myfile) const
Escribe en un archivo de texto el contenido de la matriz.
double QuadraticForm(const Pds::Vector &x) const
Calcula la forma cuadrática .
bool Normalize(void)
Normaliza la matriz convirtiendolo en una matriz unitaria.
bool IsGeq(double val) const
Verifica si cada elemento de la matriz es mayor a el valor val.
std::vector< unsigned int > KNearest(unsigned int K, const Pds::Vector &V) const
Calcula que linea de es mas cercana al vector .
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::Vector HistogramIntNorm(int min=0, int max=255) const
Retorna un vector con el histograma de elementos, desde min hasta max (valores enteros)....
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::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....
bool AddAssig(double alpha, double beta, const Pds::Matrix &B)
Suma y acumula en si mismo (A), una matriz B.
Pds::Vector ArgMinInRows(void) const
Retorna un vector con el ID del mínimo valor de cada linea.
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 ...
Pds::Matrix MaxInCols(void) const
Calcula el máximo en cada columna de la matriz.
Pds::Vector GetColVector(unsigned int col) const
Retorna un vector columna copia de una columna de la matriz.
Pds::Vector EigenDominant(double &lambda, unsigned int MaxIter=20000) const
Calcula el autovector (Eigenvector) y el autovalor (Eigenvalue) dominante en una matriz ....
Pds::Vector Get(const std::vector< Pds::Position > &P) const
Retorna el valor en las posiciones P[n]. Hace una verificación si la posiciones existen.
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....
Matrix(const Pds::Size &S, double val)
Crea un objeto de tipo Pds::Matrix con elementos inicializados con val.
Pds::Vector GetRowAsColVector(unsigned int lin) const
Retorna un vector columna copia de una linea de la matriz.
void AddRawAssigAt(unsigned int lin, unsigned int col, double b)
Suma y acumula en si mismo (A), un valor b en un punto (lin,col)
Pds::Matrix OperateRows(double(*func)(const Pds::Vector &Row, const Pds::Vector &C), const Pds::Vector &C) const
Opera la función func usando como entrada cada fila 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...
Pds::Matrix DivRowMatrix(const Pds::Matrix &B) const
[Elemento a elemento] Divide con sigo mismo (A), una matriz B linea y el resultado es cargado en C....
bool GetCol(unsigned int col, Pds::Matrix &MatCol) const
Retorna una matriz columna escojida en la columna col. Hace una verificación si la columna existe y t...
Pds::Matrix MaxAbsInCols(void) const
Retorna una matriz con el máximo valor absoluto de cada columna.
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.
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...
static bool IsSampleBlock(const std::vector< Pds::Matrix > &Block)
Verifica que el bloque (std::vector<Pds::Matrix>) sea un vector no vacío de matrices no nulas y simil...
bool ApplySub(const Pds::Matrix &B, const Pds::Matrix &C)
Aplica a cada elemento de la diferencia de matrices. La matriz que recibe debe tener el mismo tamaño ...
Pds::Json ToJson(void) const
Retorna un objeto Pds::Json con el contenido de la matriz.
double Mean(void) const
Calcula el valor medio de la matriz.
bool AddAssigColMatrix(const Pds::Matrix &B)
Suma y acumula en si mismo (A) e en cada columna, una matriz columna B.
Pds::Matrix And(const Pds::Matrix &B, double Umbral=0.5) const
[Elemento a elemento] And con sigo mismo (A), una matriz B y el resultado es cargado en C.
bool RowReduction(void)
Convierte la matriz en una matriz reducida.
bool XorAssig(const Pds::Matrix &B, double Umbral=0.5)
Xor y acumula en si mismo (A), una matriz B.
double NAccuracy(const Pds::Matrix &B) const
Calcula el valor de la Accuracy entre los elementos de las matrices A (Self) y B. Antes de comprarar ...
Matrix(unsigned int Nlin, unsigned int Ncol, const std::vector< Datum > &P)
Crea una matriz Nlin lineas y Ncol columnas usando los elementos del vector.
Pds::Matrix MaxInCols(Pds::Array< unsigned int > &Lin) const
Calcula el máximo en cada columna de la matriz.
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 ...
Pds::Matrix GetCols(const std::initializer_list< unsigned int > List) const
Retorna una sub matriz escojida desde una lista de indices de columnas. Hace una verificación si los ...
bool IsMulBy(const Pds::Matrix &B) const
Verifica si las matrices son multiplicables.
bool GetColVector(unsigned int col, Pds::Vector &U) const
Copia a un vector columna el contenido de una columna de la matriz.
Matrix(unsigned int Nlin, unsigned int Ncol)
Crea un objeto de tipo Pds::Matrix con elementos inicializados con cero.
long int CountRoundEqualIn(const Pds::Matrix &B) const
Calcula el número de elementos enteros iguales entre las matrices A y B.
bool Fill(Pds::AbstractRV &RV)
Inicializa la matriz con un valor aleatório.
Pds::Matrix TransformRows(Pds::Vector(*func)(const Pds::Vector &Row, const Pds::Vector &C), const Pds::Vector &C) const
Opera la función func usando como entrada cada fila de la matriz.
bool SubAssig(double b)
Resta y acumula en si mismo (A), un valor b. Este es similar al operador -=.
Matrix(const std::initializer_list< Datum > &list)
Crea una matriz de una columna, en esa columna estan los elementos del vector.
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...
Pds::Matrix Conv2D(const Pds::Matrix &B, const std::vector< unsigned int > &Strides={1, 1}, Pds::Ra::Padding Padding=Pds::Ra::Full) const
Calcula la convolución entre A y B.
bool IsSimilarTo(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 ...
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 MtM(const Pds::Matrix &B) const
Retorna A.T()*A cargado en B.
bool IsEqualTo(double val) const
Verifica si cada elemento de la matriz es igual a el valor val.
double Get(const Pds::Position &P) const
Retorna el valor en la posición (lin,col), hace una verificación si la posición existe.
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.
double MultiplyValues(void) const
Calcula el valor de la multiplicación de elementos en la 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....
std::ostream & operator<<(std::ostream &out, const Pds::Matrix &mat)
Retorna el contenido de la matriz por la salida estándar.
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 ExportJsonToStream(std::ofstream &myfile, unsigned int ntabs) const
Escribe en un archivo Json el contenido de la matriz.
std::vector< std::vector< Pds::Matrix > > BatchBlock
Definición de un tipo de dato Pds::BatchBlock.
bool AddAssig(const Pds::Matrix &B)
Suma y acumula en si mismo (A), una matriz B. Este es similar al perador +=.
double & In(unsigned int id)
Retorna una variable double en la posición (id) de la matriz. Hace una verificación para evitar leer ...
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...
static std::vector< Pds::Matrix > ZerosSampleBlock(unsigned int N, const Pds::Size &Sz)
Crea un bloque (std::vector<Pds::Matrix>) con matrices no nulas y similares inicializadas con Pds::Ze...
bool ApplyAdd(double alpha, const Pds::Matrix &B, double beta, const Pds::Matrix &C)
Aplica la función func a cada elemento de la suma ponderada de las matrices. La matriz que recibe deb...
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.
static bool GetSampleRaw(const std::vector< Pds::Matrix > &Block, unsigned int lin, unsigned int col, Pds::Vector &x)
Extrae una muestra de un bloque (std::vector<Pds::Matrix>) de N matrices (Pds::Matrix) de L elementos...
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.
Pds::Vector SumSquareInRows(void) const
Calcula la suma cuadrada de cada linea de la matriz.
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 ...
static Pds::Matrix ImportBmpFileAsGray(const std::string &bmpfilename)
Retorna una matriz en escala de grises, de 0 a 255.
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.
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()
static bool ExportSampleBlockXmlToStream(std::ofstream &myfile, const std::vector< Pds::Matrix > &Block)
Retorna un std::string en formato Xml con el contenido del SampleBlock.
bool ImportCsvFileWithoutTitles(const std::string &filepath, char delimitador)
Lee un archivo de texto el contenido de la matriz usando un formato Csv (Comma Separated Values).
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 ImportCsvFile(const std::string &filepath, char delimitador, std::vector< std::string > &titles)
Lee un archivo de texto el contenido de la matriz usando un formato Csv (Comma Separated Values).
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.
bool IsColMatrix(void) const
Verifica si la matriz tiene solo una columna.
double RMSE(const Pds::Matrix &B) const
Calcula valor de la raiz cuadrada del error quadrático medio (Root Mean Square Error) entre las matri...
double MeanSquare(void) const
Calcula valor quadrático medio de una matriz.
Pds::Array< unsigned int > IdInMultipleMse(const std::vector< Pds::Matrix > &Block) const
Calcula que linea de es mas cercana a cada muestra en el bloque .
double NormDiff2(const Pds::Matrix &B) const
Calcula la 2-norm al cuadrado 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....
std::vector< unsigned int > FindIdOfKMin(unsigned int K, std::vector< double > &dat) const
Retorna un vector de indices de los K menores valores en la matriz A.
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 = ....
Matrix(const std::vector< Pds::Point2D > &P)
Crea una matriz de dos columnas, en la primera columna estan los elementos X y en la segunda columna ...
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.
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 ScalingColsWith(const Pds::Vector &Mean, const Pds::Vector &Std)
Escala cada columna de la matriz usando la media y el standard deviation de cada columna 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...
Pds::Matrix CompMul(double b, const Pds::Matrix &B) const
Multiplica con sigo mismo (A), previa composición, una matriz B y el resultado es cargado en C....
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...
std::set< int > IntegerSet(void) const
Set de elementos enteros.
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 .
static bool FunctionCh3ToCh3(void(*func)(double a1, double a2, double a3, double &b1, double &b2, double &b3), const Pds::Matrix &A1, const Pds::Matrix &A2, const Pds::Matrix &A3, Pds::Matrix &B1, Pds::Matrix &B2, Pds::Matrix &B3)
Convierte elemento a elemento 3 matrices a 3 matrices.
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....
bool XorAssigAt(unsigned int lin, unsigned int col, const Pds::Matrix &B, double Umbral=0.5)
Xor y acumula en si mismo (A), una matriz B desde un punto (lin,col) haciendo una intersección.
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 ...
Matrix(const std::vector< Datum > &P)
Crea una matriz de una columna, en esa columna estan los elementos del vector.
Pds::Matrix MtM(void) const
Retorna A.T()*A cargado en B.
bool HasGeq(double val) const
Verifica si existe al menos un elemento de la matriz mayor o igual a el valor val.
bool IsInRange(unsigned int lin, unsigned int col) const
Verifica si la posición pertenece a la matriz.
Pds::Matrix HessenbergReduction(void) const
Dada una matriz , este metodo retorna una Matriz de Hessenberg ( ) semejante a la matriz ....
bool ExportXmlToStringStream(std::stringstream &sstream) const
Escribe en un std::stringstream en formato Xml 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...
double Max(unsigned int *id=NULL) const
Calcula el máximo valor de la matriz.
Pds::Matrix StdInCols(void) const
Calcula el standard deviation de cada columna de la matriz.
bool OrAssigAt(unsigned int lin, unsigned int col, const Pds::Matrix &B, double Umbral=0.5)
Or y acumula en si mismo (A), una matriz B desde un punto (lin,col) haciendo una intersección.
double MinAbs(unsigned int *id=NULL) const
Calcula el mínimo valor del valor absoluto de la matriz.
bool Mul(const Pds::Matrix &B, Pds::Matrix &Out) const
Multiplica con sigo mismo (A), una matriz B y el resultado es cargado en Out. Este método es similar ...
bool FillRandC(double p1)
Inicializa la matriz con números aleatórios unos y ceros, la probabilidad de 1 es p1.
Pds::Matrix & operator+=(double b)
Suma y acumula en si mismo (A), un valor b. Este operador es similar al método AddAssig()
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)
Multiplica y acumula en si mismo (A), un valor b. Este operador es similar al método MulAssig()
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 número 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 , la probabilidade en relación a los unos y ceros en la matriz despue...
std::vector< Pds::Point2D > GetPoint2DsFromCols(unsigned int colx, unsigned int coly) const
Copia un par de columnas de la matriz para convertirlas en un vector de Pds::Point2D.
Pds::Matrix Conv(const Pds::Matrix &B, Pds::Ra::Padding Padding=Pds::Ra::Full) const
Calcula la convolución entre A y B.
std::vector< unsigned int > KNearest(unsigned int K, const Pds::Vector &V, std::vector< double > &D2) const
Calcula que linea de es mas cercana al vector .
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.
bool Apply(double(*func)(double), const Pds::Matrix &B)
Aplica la función func a cada elemento de la matriz. La matriz que recibe debe tener el mismo tamaño ...
Pds::Matrix Scale(double minval, double maxval) const
Rescala linearmente los datos desde minval a maxval.
Pds::Vector QuadraticFormWithRows(const Pds::Matrix &X) const
Calcula la forma cuadrática .
Pds::Matrix SubLambdaI(double lambda) const
Dada una matriz , este metodo retorna :
std::map< int, unsigned int > IntegerCount(void) const
Cuenta la cantidad de elementos enteros.
static bool IsBatchBlock(const std::vector< std::vector< Pds::Matrix > > &Tensor)
Verifica que el tensor (std::vector<std::vector<Pds::Matrix>>) sea un vector de vectores no vacíos de...
double MinAbsOfDiag(void) const
Retorna el mínimo valor absoluto de la diagonal de una matriz . La matriz no necesita ser cuadrada,...
bool Save(const std::string &filepath) const
Escribe en un archivo de texto el contenido de la matriz.
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.
Pds::Matrix MMt(void) const
Retorna A*A.T() cargado en B.
static bool ExportBatchBlockXmlToStream(std::ofstream &myfile, const std::vector< std::vector< Pds::Matrix > > &Block)
Escribe en un std::ofstream en formato Xml con el contenido del BatchBlock.
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...
double MaxAbsOfLowerTriangular(void) const
Retorna el máximo valor absoluto de los elementos abajo de la diagonal. La matriz no necesita ser cua...
Matrix(const std::vector< Pds::Position > &P)
Crea una matriz de dos columnas, en la primera columna estan los elementos Lin y en la segunda column...
static Pds::Matrix MeanSampleBlock(const std::vector< Pds::Matrix > &Block)
Calcula A,la matriz media de un conjunto de N matrizes agrupadas en un std::vector.
double MaxAbsOfDiag(void) const
Retorna el máximo valor absoluto de la diagonal de una matriz . La matriz no necesita ser cuadrada,...
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. La matriz que recibe debe tener ...
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...
Pds::Vector QuadraticDotWithRows(const Pds::Vector &Mu) const
Calcula la forma cuadrática .
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.
bool FindValAndReplace(double val, double rep)
Remplaza valores especificos por una matriz por otros.
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::Vector MinInRows(void) const
Retorna un vector con el mínimo valor de cada linea.
bool QR(Pds::Matrix &Q, Pds::Matrix &R) const
Calcula la descomposición QR de una matriz .
Pds::Matrix GreaterThan(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es mayor que un valor b y el resultado es ca...
bool ExportJsonToStream(std::ofstream &myfile) const
Escribe en un archivo Json el contenido de la matriz.
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...
static bool GetSampleRaw(const std::vector< Pds::Matrix > &Block, unsigned int id, Pds::Vector &x)
Extrae una muestra de un bloque (std::vector<Pds::Matrix>) de N matrices (Pds::Matrix) de L elementos...
Pds::Matrix OperateCols(double(*func)(const Pds::Matrix &Col)) const
Opera la función func usando como entrada cada columna de la matriz.
Pds::Matrix OperateCols(double(*func)(const Pds::Vector &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...
std::string ExportJsonToString(unsigned int ntabs) const
Retorna una cadena de texto en formato Json con el contenido de la matriz.
static std::vector< Pds::Matrix > MaxPoolingSampleBlock(const std::vector< Pds::Matrix > &A, unsigned int LinPool, unsigned int ColPool)
Aplica max pooling a cada matriz de lineas y columnas.
std::vector< Pds::Matrix > FindRowsBlock(const Pds::Vector &V, std::vector< int > &Label) const
Retorna un vector de matrices con las lineas donde existe un mismo id en el vector ....
bool ExportXmlToStream(std::ofstream &myfile) const
Escribe en un archivo Xml el contenido de la matriz.
double Var(double *mean=NULL) const
Calcula el valor de la varianza de la matriz.
double Cov(const Pds::Matrix &B) const
Calcula la covarianza con la matriz.
bool LoadFromStream(std::ifstream &ifs, unsigned int Nlin, unsigned int Ncol)
Lee Nlin*Ncol elementos desde un archivo, estos elementos son colocados en una matriz de Nlin lineas ...
double RMS(void) const
Calcula valor raiz quadrático medio de una matriz.
std::vector< unsigned int > Find(void) const
Retorna una lista de indices donde existe un 1 en la matriz A.
Pds::RegionRect GetRegion(void) const
Retorna una variable Pds::RegionRect desde la posicion (0,0), con ancho y alto (Mat....
bool ExportTexFile(const std::string &filepath, const std::vector< std::string > &titles, const std::vector< std::string > &rowtitles, const std::string &caption="My caption", const std::string &label="mylabel") const
Escribe en un archivo de texto el contenido de la matriz usando un formato de tabla de tex.
static Pds::Vector FlattenSampleBlock(const std::vector< Pds::Matrix > &Block)
Convierte a Pds::vector un SampleBlock.
double NormDiff(const Pds::Matrix &B) const
Calcula la 2-norm de una matriz (Frobenius norm).
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...
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 DivAssig(const Pds::Matrix &B)
Divide y acumula en si mismo (A), una matriz B. Este es similar al operador /=.
bool ExportBmpFileScale(const unsigned char colormap[256][3], const std::string &filepath) const
Escribe en una matriz en un archivo binario en formato BMP. Escala los datos de de 0 a 255,...
bool ImportXmlFromString(const std::string &str)
Carga el contenido de una matriz desde un std::string en formato Xml.
Pds::Vector ArgMaxInRows(void) const
Retorna un vector con el ID del máximo valor de cada linea.
bool MeanStdInRows(Pds::Vector &Mean, Pds::Vector &Std) const
Calcula la media y el standard deviation de cada linea de la matriz.
bool GetRow(unsigned int lin, Pds::Matrix &Row) const
Retorna una matriz linea escojida en la linea lin de X. Hace una verificación si la linea existe y si...
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 ...
bool FromJson(const Pds::Json &J)
Lee un objeto Pds::Json busca la etiqueta "Matrix" y lo carga en la matriz. El objeto debe tener al m...
void Print(const std::string &str) const
Imprime en pantalla el contenido de la matriz después del texto indicado en str.
static std::vector< std::vector< Pds::Matrix > > ZerosBatchBlock(unsigned int L, unsigned int N, const Pds::Size &Sz)
Crea un tensor (std::vector<std::vector<Pds::Matrix>>) con matrices no nulas y similares inicializada...
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.
static std::vector< Pds::Matrix > ImportBmpFile(const std::string &bmpfilename)
Lee matrices de un archivo binario en formato BMP.
bool HasLeq(double val) const
Verifica si existe al menos un elemento de la matriz menor o igual a el valor val.
bool HasNan(void) const
Verifica si la matriz tiene algun valor NAN (Not A Number).
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....
Pds::Matrix MaxInCols(std::vector< unsigned int > &Lin) const
Calcula el máximo en cada columna de la matriz.
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,...
double MSE(const Pds::Matrix &B) const
Calcula valor del error quadrático medio (Mean Square Error) entre las matrices y .
bool IsRowMatrix(void) const
Verifica si la matriz tiene solo una linea.
void Print(void) const
Imprime en pantalla el contenido de la matriz.
bool MulAssig(const Pds::Matrix &B)
Multiplica y acumula en si mismo (A), una matriz B. Este es similar al operador *=.
double & In(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 ...
Pds::Vector MaxInRows(void) const
Retorna un vector con el máximo valor de cada linea.
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...
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.
Pds::Matrix MinInCols(void) const
Calcula el mínimo en cada columna de la matriz.
bool RowSwap(unsigned int lin1, unsigned int lin2)
Intercambia los valores de las lineas de una matriz.
static std::vector< std::vector< Pds::Matrix > > RandNBatchBlock(unsigned int L, unsigned int N, const Pds::Size &Sz)
Crea un tensor (std::vector<std::vector<Pds::Matrix>>) con matrices no nulas y similares inicializada...
bool DivBelowAssig(double b)
[Elemento a elemento] Divide y acumula en si mismo (A), un valor b.
bool LoadLineFromStream(std::ifstream &ifs)
Lee una linea de un archivo y crea una matriz de Nlin=1 y Ncol columnas. Cada elemento es separado po...
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,...
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.
std::string ExportXmlToString(void) const
Retorna un std::string en formato Xml con el contenido de la matriz.
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.
std::vector< unsigned int > FindIdOfKMin(unsigned int K) const
Retorna un vector de indices de los K menores valores en la matriz A.
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...
static Pds::Size Conv2DOutputSize(const Pds::Size &A, const Pds::Size &B, const std::vector< unsigned int > &Strides, Pds::Ra::Padding Padding)
Calcula el tamaño de la matriz resultado de la convolucion de A y B.
bool FillRandU(double a, double b)
Inicializa la matriz con números aleatórios, distribuidos uniformemente, desde a a b,...
Pds::Vector Histogram(double min, double max, unsigned int L) const
Retorna un vector con um histograma de elementos espaciados . Elementos con valores menores a o may...
bool ProductAssig(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...
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 Fill(const std::vector< Datum > &P)
Inicializa la matriz con un valor constante.
Pds::Matrix OperateRows(double(*func)(const Pds::Vector &Row)) const
Opera la función func usando como entrada cada fila de la matriz.
std::string ToString(const std::string &EndData) const
Convierte los datos de la matriz en un std::string.
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.
Pds::Vector QuadraticFormWithRows(const Pds::Matrix &X, const Pds::Vector &Mu) const
Calcula la forma cuadrática .
bool IsNotSimilarTo(const Pds::Matrix &B) const
Verifica si las matrices son similares en tamaño.
Pds::Matrix Or(const Pds::Matrix &B, double Umbral=0.5) const
[Elemento a elemento] Or con sigo mismo (A), una matriz B y el resultado es cargado en C.
Pds::Matrix & operator/=(const Pds::Matrix &B)
[Elemento a elemento] Divide y acumula en si mismo (A), una matriz B. Este operador es similar al mét...
std::string ExportOctaveString(const std::string &pname) const
Retorna un std:string con los datos de la matriz en el formato de octave. Es necesario dar un nombre ...
double PSNR(const Pds::Matrix &B, unsigned int NBITS) const
Calcula valor del error quadrático medio entre las matrices y .
bool SetDiagonal(double val)
Copia un valor en una diagonal de la matriz. Copia hasta donde exista la diagonal.
bool FillRandN(double U, double Sigma)
Inicializa la matriz con números aleatórios, distribuidos usando una distribución Gaussiana con media...
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...
bool RowDivByAbsMax(void)
Normaliza cada linea de la matriz dividiendola por el máximo valor absoluto de la linea....
double Norm(void) const
Calcula la 2-norm de una matriz (Frobenius norm).
bool ExportTexFile(const std::string &filepath, const std::string &caption="My caption", const std::string &label="mylabel") const
Escribe en un archivo de texto el contenido de la matriz usando un formato de tabla de tex.
double Det(void) const
Calcula la determinante.
bool NormalizeRows(void)
Normaliza cada linea de la matriz convirtiendolo en una linea unitaria.
Pds::Matrix Remodel(unsigned int Nlin, unsigned int Ncol)
Remodela los datos internos de la array y retorna un array de tamaño diferente, los datos que faltan ...
Pds::Matrix OperateRows(double(*func)(const Pds::Matrix &Row)) const
Opera la función func usando como entrada cada fila de la matriz.
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 XorAssigVectorAtCol(unsigned int col, const Pds::Vector &B, double Umbral=0.5)
Xor y acumula en si mismo (A), una matriz B desde un punto (0,col) haciendo una intersección.
Pds::Matrix CovMatrix(Pds::Matrix &Mean) const
Calcula la matriz de covarianza de la matriz.
Pds::Vector MinAbsInRows(void) const
Retorna un vector con el mínimo valor absoluto de cada linea.
bool RowDivAssig(unsigned int lin, double alpha)
Divide la linea lin por alpha.
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 Pow(double val) const
[Elemento a elemento] Potencia asi mismo (A), elemento a elemento, con un valor val y el resultado es...
bool Conv2D(const Pds::Matrix &B, Pds::Matrix &C, const std::vector< unsigned int > &Strides={1, 1}, Pds::Ra::Padding Padding=Pds::Ra::Full) const
Calcula la convolución entre A y B.
static bool ExportAsGif(const std::vector< Pds::Matrix > &Block, const std::string &filename, unsigned int delay=100, const unsigned char colormap[256][3]=Pds::Colormap::Gray)
Salva el bloque (std::vector<Pds::Matrix>) en una imagen GIF.
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::Array< unsigned int > IdInMultipleMse(const Pds::Matrix &X) const
Calcula que linea de es mas cercana a cada linea de .
Pds::Matrix Geq(double b) const
[Elemento a elemento] Calcula con sigo mismo (A), si (A) es mayor o igual que un valor b y el resulta...
Pds::Matrix FindVal(double val) const
Retorna una nueva matriz B (binaria) con unos donde exista en A el valor val, y cero donde no se cump...
double Mape(const Pds::Matrix &B) const
Calcula el error absoluto medio porcentual (Mean Absolute Percentage Error) de una matriz.
bool ProductAssigPlus(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), const Pds::Matrix &A)
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, 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.
bool Apply(const Pds::Matrix &B)
Aplica la función func a cada elemento de la matriz. La matriz que recibe debe tener el mismo tamaño ...
Pds::Vector GetDiagonal(void) const
Retorna un vector columna copia de los valores de la diagonal de la matriz.
static std::string ExportSampleBlockXmlToString(const std::vector< Pds::Matrix > &Block)
Retorna un std::string en formato Xml con el contenido del SampleBlock.
bool FillRandU(int a, int b)
Inicializa la matriz con números aleatórios, distribuidos uniformemente, desde a a b,...
bool Apply(double(*func)(double, const std::vector< double > &), const std::vector< double > &var)
Aplica la función func a cada elemento de la matriz.
Pds::Size Size(void) const
Retorna un objeto de tipo Pds::Size con el número de lineas y columans.
Pds::Matrix MinInCols(Pds::Array< unsigned int > &Lin) const
Calcula el mínimo en cada columna de la matriz.
bool GetRows(unsigned int lin_init, unsigned int lin_end, Pds::Matrix &B) const
Retorna una sub matriz escojida desde la linea lin_init hasta lin_end, inclusive. Hace una verificaci...
Pds::Matrix GetCol(unsigned int col) const
Retorna una matriz columna escojida en la columna col. Hace una verificación si la columna existe,...
Pds::Matrix EigenVectors(const Pds::Vector &Lambda, unsigned int MaxIter=20000, bool EmptyWhenError=true) const
Calcula los vectores própios (Eigenvectors) de una matriz , Los vectores propios están colocados en l...
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::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.
Pds::Matrix FindRows(const Pds::Vector &B, double b=0.5) const
Retorna una nueva matriz con las lineas donde existe un 1 en la matriz B. En verdad B es binarizado i...
bool AndAssigAt(unsigned int lin, unsigned int col, const Pds::Matrix &B, double Umbral=0.5)
And y acumula en si mismo (A), una matriz B desde un punto (lin,col) haciendo una intersección.
static Pds::Matrix FromString(const std::string &str)
Convierte un sdt::string a una Matriz de Nlin lineas y Ncol columnas.
bool ProductAssigMinus(double b, const Pds::Matrix &B)
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz (b-B) y el resul...
std::vector< Pds::Matrix > SampleBlock
Definición de un tipo de dato Pds::SampleBlock.
static std::vector< std::vector< Pds::Matrix > > ImportBatchBlockXmlFromString(const std::string &str)
Carga el contenido de una std::vector<std::vector<Pds::Matrix>> desde un std::string en formato Xml.
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 número 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 ExportTexFile(const std::string &filepath, const std::vector< std::string > &titles, const std::string &caption="My caption", const std::string &label="mylabel") const
Escribe en un archivo de texto el contenido de la matriz usando un formato de tabla de tex.
bool ProductAssig(const Pds::Matrix &B)
[Elemento a elemento] Multiplica con sigo mismo (A), elemento a elemento, una matriz B y el resultado...
Pds::Matrix AddLambdaI(double lambda) const
Dada una matriz , este metodo retorna :
Pds::Matrix OperateCols(double(*func)(const Pds::Vector &Col, const Pds::Vector &C), const Pds::Vector &C) const
Opera la función func usando como entrada cada columna de la matriz.
Pds::Matrix QuadraticFormWithSamples(const std::vector< Pds::Matrix > &X, const Pds::Vector &Mu) const
Calcula la forma cuadrática .
bool AddAssigAt(unsigned int lin, unsigned int col, double b)
Suma y acumula en si mismo (A), un valor b en un punto (lin,col)
const double & GetRaw(unsigned int lin, unsigned int col) const
Retorna una variable double en la posición (lin,col) de la array.
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 = ....
Pds::Matrix CholeskyBanachiewicz(void) const
Dada una matriz simétrica definida positiva , este método realiza la descomposición Cholesky,...
std::vector< Pds::Matrix > FindRowsBlock(const Pds::Array< unsigned int > &ID) const
Retorna un grupo de matrices con las lineas donde existe el mismo indice id en la matriz entera ....
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 MulRowMatrix(const Pds::Matrix &B) const
[Elemento a elemento] Multiplica con sigo mismo (A), una matriz B linea y el resultado es cargado en ...
Pds::Matrix GetColsRand(unsigned int N) const
Retorna una sub matriz escojiendo N columnas aleatoriamente (sin repetición).
unsigned int Nel(void) const
Retorna el número 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...
bool ApplyProduct(const Pds::Matrix &B, const Pds::Matrix &C)
[Elemento a elemento] Aplica a cada elemento de la multiplicación de matrices. La matriz que recibe d...
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 std::vector< Pds::Matrix > RandNSampleBlock(unsigned int N, const Pds::Size &Sz)
Crea un bloque (std::vector<Pds::Matrix>) con matrices no nulas y similares inicializadas con Pds::Ra...
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.
bool ScalingColsAnalysis(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 MMt(const Pds::Matrix &B) const
Retorna A*A.T() cargado en B.
Pds::Matrix OperateRows(double(*func)(const Pds::Vector &Row, const Pds::Vector &C, const std::vector< double > &var), const Pds::Vector &C, const std::vector< double > &var) const
Opera la función func usando como entrada cada fila de la matriz.
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 máximo valor absoluto de cada linea.
std::vector< double > ToStdVector(void) const
Retorna un std::vector con los elelentos de la matriz, lee columna a columna.
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 CovMatrix(void) const
Calcula la matriz de covarianza de la matriz.
bool ApplyAdd(double(*func)(double), double alpha, const Pds::Matrix &B, double beta, const Pds::Matrix &C)
Aplica la función func a cada elemento de la suma ponderada de las matrices. La matriz que recibe deb...
void Print(const std::string &str, unsigned int precision) const
Imprime en pantalla el contenido de la matriz después del texto indicado en str.
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.
bool MulComp(double b, const Pds::Matrix &B, Pds::Matrix &Out) const
Multiplica con sigo mismo (A), un vector [b;B] y el resultado es cargado en Out. Este método es simil...
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 Add(double b) const
[Elemento a elemento] Suma con sigo mismo (A), una valor b y el resultado es cargado en C....
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.
const unsigned char Gray[256][3]
Nombre de espacio para Pds (Procesamiento Digital de Senales)