Home | Develop | Download | Contact
Namespaces
Funciónes Pds::Matrix – Básicos

Funciónes que usan Pds::Matrix, Ejemplo: Pds::Diag(), Pds::Eye(), Pds::Ones(), Pds::Zeros(), etc. Más...

Namespaces

namespace  Pds
 Nombre de espacio para Pds (Procesamiento Digital de Senales)
 

funciónes generadoras de superficies

Descripción de algunas funciónes que usan Pds::Matrix.

Pds::Matrix Pds::Peaks (unsigned int N, double L=3)
 Crea una matriz de $N\times N$ con datos correspondientes a la función $f(x,y)$, donde $-|L|\leq x \leq  |L|$ y $-|L|\leq y \leq |L|$. Más...
 
Pds::Matrix Pds::Mountain (unsigned int N, double L=2)
 Crea una matriz de $N\times N$ con datos correspondientes a la función $f(x,y)$, donde $-|L|\leq x \leq  |L|$ y $-|L|\leq y \leq |L|$. Más...
 
bool Pds::Meshgrid (const Pds::Vector &SpaceX, const Pds::Vector &SpaceY, Pds::Matrix &X, Pds::Matrix &Y)
 Crea una matriz $\mathbf{X}$ e una $\mathbf{Y}$, a partir de los datos en $\mathbf{SpaceX}$ y $\mathbf{SpaceY}$, respectivamente. Más...
 
bool Pds::Meshgrid (const Pds::Vector &SpaceR, Pds::Matrix &X, Pds::Matrix &Y)
 Crea una matriz $\mathbf{X}$ e una $\mathbf{Y}$, a partir de los datos en $\mathbf{SpaceR}$. Más...
 
Pds::Matrix Pds::Operate (double(*func)(double x, double y), const Pds::Matrix &X, const Pds::Matrix &Y)
 Crea una matriz aplicando la función $func(\mathbf{X},\mathbf{Y})$, elemento a elemento sobre las matrices $\mathbf{X}$ y $\mathbf{Y}$. Más...
 
Pds::Matrix Pds::Operate (double(*func)(double x, double y, double z), const Pds::Matrix &X, const Pds::Matrix &Y, const Pds::Matrix &Z)
 Crea una matriz aplicando la función $func(\mathbf{X},\mathbf{Y},\mathbf{Z})$, elemento a elemento sobre las matrices $\mathbf{X}$, $\mathbf{Y}$ y $\mathbf{Z}$. Más...
 

funciónes con matrices especiales

Descripción de algunas funciónes que usan Pds::Matrix.

Pds::Matrix Pds::MatrixId (unsigned int N)
 Crea una matriz con datos correspondentes ao Id de cada elemento. Más...
 
Pds::Matrix Pds::MatrixId (const Pds::Size &S)
 Crea una matriz con datos correspondentes ao Id de cada elemento. Más...
 
Pds::Matrix Pds::MatrixId (unsigned int Nlin, unsigned int Ncol)
 Crea una matriz con datos correspondentes ao Id de cada elemento. Más...
 
Pds::Matrix Pds::RandN (unsigned int N)
 Crea una matriz con datos aleatórios con distribución Normal de media cero 0.0 y desvío padrón 1.0. Más...
 
Pds::Matrix Pds::RandN (const Pds::Size &S)
 Crea una matriz con datos aleatórios con distribución Normal de media cero 0.0 y desvío padrón 1.0. Más...
 
Pds::Matrix Pds::RandN (unsigned int Nlin, unsigned int Ncol)
 Crea una matriz con datos aleatórios con distribución Normal de media cero 0.0 y desvío padrón 1.0. Más...
 
Pds::Matrix Pds::RandU (unsigned int N)
 Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0. Más...
 
Pds::Matrix Pds::RandU (const Pds::Size &S)
 Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0. Más...
 
Pds::Matrix Pds::RandU (unsigned int Nlin, unsigned int Ncol)
 Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0. Más...
 
Pds::Matrix Pds::RandC (unsigned int N, double p=0.5)
 Crea una matriz con datos aleatórios binários {0.0, 1.0} con P(1)=p. Más...
 
Pds::Matrix Pds::RandC (const Pds::Size &S, double p=0.5)
 Crea una matriz con datos aleatórios binários {0.0, 1.0} con P(1)=p. Más...
 
Pds::Matrix Pds::RandC (unsigned int Nlin, unsigned int Ncol, double p)
 Crea una matriz con datos aleatórios binários {0.0, 1.0} con P(1)=p. Más...
 
Pds::Matrix Pds::Diag (Matrix A)
 Retorna una matriz diagonal usando los dats de tra matriz, se lee primero todos los elementos de una columna y lueg se pasa a la siguiente. Más...
 
Pds::Matrix Pds::Eye (unsigned int N)
 Retorna una matriz con unos en la diagonal y el resto ceros.
Más...
 
Pds::Matrix Pds::Ones (const Pds::Size &S)
 Retorna una matriz con unos.
Más...
 
Pds::Matrix Pds::Ones (unsigned int Nlin, unsigned int Ncol)
 Retorna una matriz con unos.
Más...
 
Pds::Matrix Pds::Ones (unsigned int N)
 Retorna una matriz con unos.
Más...
 
Pds::Matrix Pds::Zeros (const Pds::Size &S)
 Retorna una matriz con ceros.
Más...
 
Pds::Matrix Pds::Zeros (unsigned int Nlin, unsigned int Ncol)
 Retorna una matriz con ceros.
Más...
 
Pds::Matrix Pds::Zeros (unsigned int N)
 Retorna una matriz con ceros.
Más...
 

funciónes para monomios en matrices

Descripción de algunas funciónes que usan Pds::Matrix.

Pds::Matrix Pds::CountingTable (unsigned int N, unsigned int M)
 Retorna una matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y $M^N$ lineas. La lineas de $\mathbf{S}_{N}(M)$ representan un conteo con $N$ numeros enteros que van de $0$ a $M-1$. Más...
 
Pds::Matrix Pds::CountingTable (unsigned int N, int min, int max, unsigned int from_id)
 Calcula la matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y $M^N$ lineas. Las lineas de $\mathbf{S}_{N}(M)$ representan un conteo con $N$ numeros enteros que van de $min$ a $max$ donde $M=max+1-min$. Más...
 
Pds::Matrix Pds::MultisetIndexSum (unsigned int N, unsigned int M)
 Retorna una matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y ${{N+M-1} \choose M}$ lineas. La lineas de $\mathbf{S}_{N}(M)$ tienen todas las combinaciones de $N$ numeros enteros que sumen $M$. Para obter $\mathbf{S}_{N}(M)$ es usada recursivamente la siguiente ecuación. Más...
 
Pds::Matrix Pds::SetIndexSum (unsigned int N, unsigned int M)
 Retorna una matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y ${N \choose M}$ lineas. La lineas de $\mathbf{S}_{N}(M)$ tienen todas las combinaciones de $N$ numeros binários que sumen $M$. Para obter $\mathbf{S}_{N}(M)$ es usada recursivamente la siguiente ecuación. Más...
 
std::string Pds::MultisetIndexSumToString (const Pds::Matrix &ID, std::string Separator=", ", unsigned int n=1)
 Retorna una cadena que representa una matriz de indices $\mathbf{ID}$ con $L$ lineas y $N$ columnas. Los indices $\mathbf{d}_l$ estan agrupados en las $L$ lineas de la matriz $\mathbf{ID}$. Más...
 
Pds::Matrix Pds::Monomials (const Pds::Matrix &X, unsigned int M, Pds::Matrix &ID)
 Dada uma matriz $\mathbf{X}=\left[\mathbf{x}_1,\quad \mathbf{x}_2,\quad ...,\quad \mathbf{x}_n,\quad ...,\quad \mathbf{x}_N\right]$, compuesta por la concatenacion de $N$ vectores columna $\mathbf{x}_n$. La función retorna una matriz $\overline{\mathbf{X}}^{M}$ compuesta por $L=\left({N \choose M}\right)$ vectores columnas $\mathbf{\overline{X}}^{\mathbf{d}_l}$ que representan monomios de orden $M$. Más...
 
Pds::Matrix Pds::Monomials (const Pds::Matrix &X, unsigned int M)
 Dada uma matriz $\mathbf{X}=\left[\mathbf{x}_1,\quad \mathbf{x}_2,\quad ...,\quad \mathbf{x}_n,\quad ...,\quad \mathbf{x}_N\right]$, compuesta por la concatenacion de $N$ vectores columna $\mathbf{x}_n$. La función retorna una matriz $\overline{\mathbf{X}}^{M}$ compuesta por $L=\left({N \choose M}\right)$ vectores columnas $\mathbf{\overline{X}}^{\mathbf{d}_l}$ que representan monomios de orden $M$. Más...
 

funciónes de busqueda

Descripción de algunas funciónes que usan Pds::Matrix.

std::vector< unsigned int > Pds::Find (const Pds::Matrix &A)
 Retorna una lista de indices donde existe un 1 en la matriz A. Más...
 

funciónes de concatenacion

Descripción de algunas funciónes que usan Pds::Matrix.

Pds::Matrix Pds::MergeVer (const std::initializer_list< Pds::Matrix > list)
 Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error. Más...
 
Pds::Matrix Pds::MergeVer (const std::list< Pds::Matrix > &list)
 Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error. Más...
 
Pds::Matrix Pds::MergeVer (const std::vector< Pds::Matrix > &vec)
 Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error. Más...
 
Pds::Matrix Pds::MergeVer (const std::vector< Pds::Vector > &vec)
 Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error. Más...
 
Pds::Matrix Pds::MergeHor (const std::initializer_list< Pds::Matrix > list)
 Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error. Más...
 
Pds::Matrix Pds::MergeHor (const std::list< Pds::Matrix > &list)
 Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error. Más...
 
Pds::Matrix Pds::MergeHor (const std::vector< Pds::Matrix > &vec)
 Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error. Más...
 
Pds::Matrix Pds::MergeHor (const std::vector< Pds::Vector > &vec)
 Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error. Más...
 
Pds::Matrix Pds::RegressorMatrix (const std::initializer_list< Pds::Matrix > list)
 Retorna una Regressor Matrix $\mathbf{R}$, creado concatenando verticalmente las matrices $\mathbf{list_n}$ en una lista $\mathbf{list}$.
Si las matrices no tienen el mismo número de columnas se considera um error. Más...
 
Pds::Matrix Pds::RegressorMatrix (const Pds::Matrix &B)
 Retorna una Regressor Matrix $\mathbf{R}$ creado concatenando horizontalmente un vector de unos $\overline{\mathbf{1}}$ con una matriz $\mathbf{B}$. Más...
 
Pds::Matrix Pds::RegressorMatrix (const Pds::Matrix &B, unsigned int M)
 Retorna una Regressor Matrix $\mathbf{R}$ para una forma polinomial multivariada de orden M. $\mathbf{R}$ es creado concatenando horizontalmente matrices $\overline{\mathbf{B}}^{m},~\forall m \in \{0,1,2,...,M\}$. Más...
 
Pds::Matrix Pds::RegressorMatrix (const Pds::Matrix &B, unsigned int M, Pds::Matrix &ID)
 Retorna una Regressor Matrix $\mathbf{R}$ para una forma polinomial multivariada de orden M. $\mathbf{R}$ es creado concatenando horizontalmente matrices $\overline{\mathbf{B}}^{m},~\forall m \in \{0,1,2,...,M\}$. Más...
 

Descripción detallada

Funciónes que usan Pds::Matrix, Ejemplo: Pds::Diag(), Pds::Eye(), Pds::Ones(), Pds::Zeros(), etc.

#include <Pds/FuncMatrix>


Estas funciónes trabajan con una matriz de la forma.

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

\[
A\equiv [a_{i,j}]
   \]

nlin es el número de lineas y ncol es el número de columnas.

Informacion adicional puede ser encontrada en [5]

Documentación de las funciones

◆ Peaks()

Pds::Matrix Pds::Peaks ( unsigned int  N,
double  L = 3 
)

Crea una matriz de $N\times N$ con datos correspondientes a la función $f(x,y)$, donde $-|L|\leq x \leq  |L|$ y $-|L|\leq y \leq |L|$.

\[
z\equiv f(x,y) =  \frac{3}{8} \left(1-x\right)^{2} e^{-x^{2}-\left(1.0+y\right)^{2}}
            -\frac{5}{4} (\frac{x}{5} - x^{3} - y^5) e^{-x^2-y^2} 
            -\frac{1}{24} e^{-(x+1.0)^2 - y^2 }
\]

\[
z\leftarrow 126 z+127;
\]


    Pds::Matrix Z=Pds::Peaks(480);
    Z.ExportBmpFile(Pds::Colormap::Jet,"PeaksColormapJet.bmp"); 
    
Pds::Peaks(480)
Parámetros
[in]NNúmero de lineas y columnas.
[in]LValor de los extremos.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.
Ejemplos
example_matrix_export_bmp.cpp y example_octave_show.cpp.

◆ Mountain()

Pds::Matrix Pds::Mountain ( unsigned int  N,
double  L = 2 
)

Crea una matriz de $N\times N$ con datos correspondientes a la función $f(x,y)$, donde $-|L|\leq x \leq  |L|$ y $-|L|\leq y \leq |L|$.

\[
z\equiv f(x,y) =  xe^{-x^2-y^2};
\]

\[
        z\leftarrow 126 z+127;
\]


    Pds::Matrix Z=Pds::Mountain(480);
    Z.ExportBmpFile(Pds::Colormap::Jet,"MountainColormapJet.bmp"); 
    
Pds::Mountain(480)
Parámetros
[in]NNúmero de lineas y columnas.
[in]LValor de los extremos.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.
Ejemplos
example_matrix_export_bmp.cpp.

◆ Meshgrid() [1/2]

bool Pds::Meshgrid ( const Pds::Vector SpaceX,
const Pds::Vector SpaceY,
Pds::Matrix X,
Pds::Matrix Y 
)

Crea una matriz $\mathbf{X}$ e una $\mathbf{Y}$, a partir de los datos en $\mathbf{SpaceX}$ y $\mathbf{SpaceY}$, respectivamente.

\[
\mathbf{X}=
\left(
\begin{matrix}
\mathbf{SpaceX} & \mathbf{SpaceX} & \dots & \mathbf{SpaceX}
\end{matrix}
\right)
\]

\[
\mathbf{Y}=
\left(
\begin{matrix}
\mathbf{SpaceY}^{T} \\ 
\mathbf{SpaceY}^{T} \\ 
\vdots \\
\mathbf{SpaceY}
\end{matrix}
\right)
\]

Parámetros
[in]SpaceXVector con los datos que seran repetidos en cada columna de X.
[in]SpaceYVector con los datos que seran repetidos en cada linea de Y.
[out]XMatriz X. La matriz puede estar vacia, nueva memoria será reservada.
[out]YMatriz Y. La matriz puede estar vacia, nueva memoria será reservada.
Devuelve
Retorna true si todo fue bien o false en caso de error.
Ejemplos
example_mathmatrix_crossentropy.cpp, example_mathmatrix_kldivergence.cpp, example_matrixfunc.cpp, example_matrixfunc_meshgrid.cpp y example_octave_show.cpp.

◆ Meshgrid() [2/2]

bool Pds::Meshgrid ( const Pds::Vector SpaceR,
Pds::Matrix X,
Pds::Matrix Y 
)

Crea una matriz $\mathbf{X}$ e una $\mathbf{Y}$, a partir de los datos en $\mathbf{SpaceR}$.

\[
\mathbf{X}=
\left(
\begin{matrix}
\mathbf{SpaceR} & \mathbf{SpaceR} & \dots & \mathbf{SpaceR}
\end{matrix}
\right)
\]

\[
\mathbf{Y}=
\left(
\begin{matrix}
\mathbf{SpaceR}^{T} \\ 
\mathbf{SpaceR}^{T} \\ 
\vdots \\
\mathbf{SpaceR}
\end{matrix}
\right)
\]


    Pds::Vector r=Pds::Range(0,8); 
    Pds::Matrix X,Y;
    Pds::Meshgrid (r,X,Y);
    
Parámetros
[in]SpaceRVector con los datos que seran repetidos en cada columna de X e Y.
[out]XMatriz X. La matriz puede estar vacia, nueva memoria será reservada.
[out]YMatriz Y. La matriz puede estar vacia, nueva memoria será reservada.
Devuelve
Retorna true si todo fue bien o false en caso de error.

◆ Operate() [1/2]

Pds::Matrix Pds::Operate ( double(*)(double x, double y)  func,
const Pds::Matrix X,
const Pds::Matrix Y 
)

Crea una matriz aplicando la función $func(\mathbf{X},\mathbf{Y})$, elemento a elemento sobre las matrices $\mathbf{X}$ y $\mathbf{Y}$.

\[
\mathbf{Z}=func(\mathbf{X},\mathbf{Y})
\]


    Pds::Matrix X=Pds::RandN(3,3);
    Pds::Matrix Y=Pds::Eye(3);
    Pds::Matrix Z=Pds::Operate(pow,X,Y);
    
Parámetros
[in]funcFunción a aplicar, esta debe tener a forma double func(double, double).
[in]XMatriz X.
[in]YMatriz Y.
Devuelve
Retorna la matriz $\mathbf{Z}$.
Ejemplos
example_matrixfunc.cpp.

◆ Operate() [2/2]

Pds::Matrix Pds::Operate ( double(*)(double x, double y, double z)  func,
const Pds::Matrix X,
const Pds::Matrix Y,
const Pds::Matrix Z 
)

Crea una matriz aplicando la función $func(\mathbf{X},\mathbf{Y},\mathbf{Z})$, elemento a elemento sobre las matrices $\mathbf{X}$, $\mathbf{Y}$ y $\mathbf{Z}$.

\[
\mathbf{H}=func(\mathbf{X},\mathbf{Y},\mathbf{Z})
\]


    Pds::Matrix X=Pds::Ones(3,3);
    Pds::Matrix Y=Pds::Eye(3);
    Pds::Matrix Z=Pds::RandC(3,3);
    auto func=[](double x,double y,double z)->double{return x+y+z;};
    Pds::Matrix H=Pds::Operate(func,X,Y,Z);
    
Parámetros
[in]funcFunción a aplicar, esta debe tener a forma double func(double, double, double).
[in]XMatriz X.
[in]YMatriz Y.
[in]ZMatriz Z.
Devuelve
Retorna la matriz $\mathbf{H}$.

◆ MatrixId() [1/3]

Pds::Matrix Pds::MatrixId ( unsigned int  N)

Crea una matriz con datos correspondentes ao Id de cada elemento.


    Pds::Matrix A=Pds::MatrixId(3);
    A.Print("A:\n");
    

La salida sería:

0 3 6
1 4 7
2 5 8
     
Parámetros
[in]NNúmero de lineas y columnas.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.
Ejemplos
example_matrix_operators_binary.cpp y example_matrixfunc.cpp.

◆ MatrixId() [2/3]

Pds::Matrix Pds::MatrixId ( const Pds::Size S)

Crea una matriz con datos correspondentes ao Id de cada elemento.


    Pds::Matrix A=Pds::MatrixId(Pds::Size(3,3));
    A.Print("A:\n");
    

La salida sería:

0 3 6
1 4 7
2 5 8
     
Parámetros
[in]STamaño de la matriz.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ MatrixId() [3/3]

Pds::Matrix Pds::MatrixId ( unsigned int  Nlin,
unsigned int  Ncol 
)

Crea una matriz con datos correspondentes ao Id de cada elemento.


    Pds::Matrix A=Pds::MatrixId(3,3);
    A.Print("A:\n");
    

La salida sería:

0 3 6
1 4 7
2 5 8
     
Parámetros
[in]NlinNúmero de lineas.
[in]NcolNúmero de columnas.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ RandN() [1/3]

Pds::Matrix Pds::RandN ( unsigned int  N)

Crea una matriz con datos aleatórios con distribución Normal de media cero 0.0 y desvío padrón 1.0.


Pds::Matrix A=Pds::RandN(3);
A.Print("A:\n");

La salida sería:

-1.0743635946361  -0.65705834043996 -2.4575761653009  
1.22862653077     -0.11275232814368 -0.14186971563947 
0.024275794651666 0.19490931901932  -0.42842407852154 
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]NNúmero de lineas y columnas.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.
Ejemplos
example_funcmatrixsampleblock_mixsampleblock.cpp, example_funcmatrixsampleblock_operator.cpp, example_matrix_dsp.cpp, example_matrixfunc.cpp, example_octave_pairwisescatterxy.cpp, example_regression_fitting.cpp y example_vector_poly.cpp.

◆ RandN() [2/3]

Pds::Matrix Pds::RandN ( const Pds::Size S)

Crea una matriz con datos aleatórios con distribución Normal de media cero 0.0 y desvío padrón 1.0.


Pds::Matrix A=Pds::RandN(Pds::Size(3,3));
A.Print("A:\n");

La salida sería:

-1.0743635946361  -0.65705834043996 -2.4575761653009  
1.22862653077     -0.11275232814368 -0.14186971563947 
0.024275794651666 0.19490931901932  -0.42842407852154 
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]STamaño de la matriz.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ RandN() [3/3]

Pds::Matrix Pds::RandN ( unsigned int  Nlin,
unsigned int  Ncol 
)

Crea una matriz con datos aleatórios con distribución Normal de media cero 0.0 y desvío padrón 1.0.


Pds::Matrix A=Pds::RandN(3,3);
A.Print("A:\n");

La salida sería:

-1.0743635946361  -0.65705834043996 -2.4575761653009  
1.22862653077     -0.11275232814368 -0.14186971563947 
0.024275794651666 0.19490931901932  -0.42842407852154 
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]NlinNúmero de lineas.
[in]NcolNúmero de columnas.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ RandU() [1/3]

Pds::Matrix Pds::RandU ( unsigned int  N)

Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0.


Pds::Matrix A=Pds::RandU(3);
A.Print("A:\n");

La salida sería:

0.84018771676347 0.39438292663544 0.78309922339395 
0.79844003310427 0.91164735751227 0.19755136920139 
0.33522275555879 0.76822959445417 0.27777471067384 
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]NNúmero de lineas y columnas.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.
Ejemplos
example_funcconvexhull_incremental.cpp, example_matrixfunc.cpp y example_optadam_create.cpp.

◆ RandU() [2/3]

Pds::Matrix Pds::RandU ( const Pds::Size S)

Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0.


Pds::Matrix A=Pds::RandU(Pds::Size(3,3));
A.Print("A:\n");

La salida sería:

0.84018771676347 0.39438292663544 0.78309922339395 
0.79844003310427 0.91164735751227 0.19755136920139 
0.33522275555879 0.76822959445417 0.27777471067384 
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]STamaño de la matriz.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ RandU() [3/3]

Pds::Matrix Pds::RandU ( unsigned int  Nlin,
unsigned int  Ncol 
)

Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0.


Pds::Matrix A=Pds::RandU(3,3);
A.Print("A:\n");

La salida sería:

0.84018771676347 0.39438292663544 0.78309922339395 
0.79844003310427 0.91164735751227 0.19755136920139 
0.33522275555879 0.76822959445417 0.27777471067384 
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]NlinNúmero de lineas.
[in]NcolNúmero de columnas.
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ RandC() [1/3]

Pds::Matrix Pds::RandC ( unsigned int  N,
double  p = 0.5 
)

Crea una matriz con datos aleatórios binários {0.0, 1.0} con P(1)=p.


Pds::Matrix A=Pds::RandC(3);
A.Print("A:\n");

La salida sería:

1 0 1
0 1 0
1 1 0
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]NNúmero de lineas y columnas.
[in]pProbabilidad P(1).
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.
Ejemplos
example_matrixfunc.cpp y example_octave_pairwisescatterxy.cpp.

◆ RandC() [2/3]

Pds::Matrix Pds::RandC ( const Pds::Size S,
double  p = 0.5 
)

Crea una matriz con datos aleatórios binários {0.0, 1.0} con P(1)=p.


Pds::Matrix A=Pds::RandC(Pds::Size(3,3));
A.Print("A:\n");

La salida sería:

1 0 1
0 1 0
1 1 0
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]STamaño de la matriz.
[in]pProbabilidad P(1).
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ RandC() [3/3]

Pds::Matrix Pds::RandC ( unsigned int  Nlin,
unsigned int  Ncol,
double  p 
)

Crea una matriz con datos aleatórios binários {0.0, 1.0} con P(1)=p.


Pds::Matrix A=Pds::RandC(3,3);
A.Print("A:\n");

La salida sería:

1 0 1
0 1 0
1 1 0
Atención
La función usa internamente la función rand(), si se desea esta puede ser aleatoriamente inicializada usando la funcíón Pds::Ra::Randomize(), de lo contrario los números pseudo aleatórios siempre seguirán la misma secuencia.
Parámetros
[in]NlinNúmero de lineas.
[in]NcolNúmero de columnas.
[in]pProbabilidad P(1).
Devuelve
Retorna una matriz no vacía si todo fue bien o una matriz vacía en caso de error.

◆ Diag()

Pds::Matrix Pds::Diag ( Matrix  A)

Retorna una matriz diagonal usando los dats de tra matriz, se lee primero todos los elementos de una columna y lueg se pasa a la siguiente.

\[
\left(\begin{matrix}
a_{00} & 0 & 0 & 0\\ 
0 & a_{10} & 0 & 0\\
0 & 0 & a_{01} & 0\\
0 & 0 & 0 & a_{11}
\end{matrix}\right)
\leftarrow A=\left(\begin{matrix}
a_{00} & a_{01} \\ 
a_{10} & a_{11} 
\end{matrix}\right)
   \]


Pds::Matrix A=Pds::Diag(Pds::Vector({1,2,3}));
A.Print("A:\n");

La salida sería:

1 0 0
0 2 0
0 0 3
Parámetros
[in]ALa matriz donde se extraen los datos.
Devuelve
Retorna la matriz diagonal.
Ejemplos
example_matrixfunc.cpp.

◆ Eye()

Pds::Matrix Pds::Eye ( unsigned int  N)

Retorna una matriz con unos en la diagonal y el resto ceros.

\[
\left(\begin{matrix}
1 & 0 & 0 & 0\\ 
0 & 1 & 0 & 0\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1
\end{matrix}\right)
   \]


Pds::Matrix A=Pds::Eye(3);
A.Print("A:\n");

La salida sería:

1 0 0
0 1 0
0 0 1
Parámetros
[in]NEl numero de lineas y columnas de la matriz.
Devuelve
Retorna la matriz o una matriz vacía en caso de error.
Ejemplos
example_funcmatrix_merge.cpp, example_matrix_export.cpp, example_matrix_export_sample_block.cpp, example_matrix_export_tensor_block.cpp, example_matrixfunc.cpp y example_octave_show.cpp.

◆ Ones() [1/3]

Pds::Matrix Pds::Ones ( const Pds::Size S)

◆ Ones() [2/3]

Pds::Matrix Pds::Ones ( unsigned int  Nlin,
unsigned int  Ncol 
)

Retorna una matriz con unos.

\[
\left(\begin{matrix}
1 & 1 & 1 & 1\\ 
1 & 1 & 1 & 1\\
1 & 1 & 1 & 1\\
1 & 1 & 1 & 1
\end{matrix}\right)
   \]


Pds::Matrix A=Pds::Ones(3,3);
A.Print("A:\n");

La salida sería:

1 1 1
1 1 1
1 1 1
Parámetros
[in]NlinEl numero de lineas de la matriz.
[in]NcolEl numero de columnas de la matriz.
Devuelve
Retorna la matriz o una matriz vacía en caso de error.

◆ Ones() [3/3]

Pds::Matrix Pds::Ones ( unsigned int  N)

Retorna una matriz con unos.

\[
\left(\begin{matrix}
1 & 1 & 1 & 1\\ 
1 & 1 & 1 & 1\\
1 & 1 & 1 & 1\\
1 & 1 & 1 & 1
\end{matrix}\right)
   \]


Pds::Matrix A=Pds::Ones(3);
A.Print("A:\n");

La salida sería:

1 1 1
1 1 1
1 1 1
Parámetros
[in]NEl numero de lineas y columnas de la matriz.
Devuelve
Retorna la matriz o una matriz vacía en caso de error.

◆ Zeros() [1/3]

Pds::Matrix Pds::Zeros ( const Pds::Size S)

Retorna una matriz con ceros.

\[
\left(\begin{matrix}
0 & 0 & 0 & 0\\ 
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{matrix}\right)
   \]


Pds::Matrix A=Pds::Zeros(Pds::Size(3,3));
A.Print("A:\n");

La salida sería:

0 0 0
0 0 0
0 0 0
Parámetros
[in]SEl tamaño de la matriz.
Devuelve
Retorna la matriz o una matriz vacía en caso de error.
Ejemplos
example_ellipse_getellipse.cpp, example_line2d_create.cpp, example_matrix_export_tensor_block.cpp, example_matrix_fill.cpp, example_matrix_sampleblock.cpp, example_matrixfunc.cpp y example_octave_pairwisescatterxy.cpp.

◆ Zeros() [2/3]

Pds::Matrix Pds::Zeros ( unsigned int  Nlin,
unsigned int  Ncol 
)

Retorna una matriz con ceros.

\[
\left(\begin{matrix}
0 & 0 & 0 & 0\\ 
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{matrix}\right)
   \]


Pds::Matrix A=Pds::Zeros(3,3);
A.Print("A:\n");

La salida sería:

0 0 0
0 0 0
0 0 0
Parámetros
[in]NlinEl numero de lineas de la matriz.
[in]NcolEl numero de columnas de la matriz.
Devuelve
Retorna la matriz o una matriz vacía en caso de error.

◆ Zeros() [3/3]

Pds::Matrix Pds::Zeros ( unsigned int  N)

Retorna una matriz con ceros.

\[
\left(\begin{matrix}
0 & 0 & 0 & 0\\ 
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0
\end{matrix}\right)
   \]


Pds::Matrix A=Pds::Zeros(3);
A.Print("A:\n");

La salida sería:

0 0 0
0 0 0
0 0 0
Parámetros
[in]NEl numero de lineas y columnas de la matriz.
Devuelve
Retorna la matriz o una matriz vacía en caso de error.

◆ CountingTable() [1/2]

Pds::Matrix Pds::CountingTable ( unsigned int  N,
unsigned int  M 
)

Retorna una matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y $M^N$ lineas. La lineas de $\mathbf{S}_{N}(M)$ representan un conteo con $N$ numeros enteros que van de $0$ a $M-1$.

\[
\mathbf{S}_{2}(3)=\left(\begin{matrix}
0 & 0 \\
1 & 0 \\
2 & 0 \\
0 & 1 \\
1 & 1 \\
2 & 1 \\
0 & 2 \\
1 & 2 \\
2 & 2 \\
\end{matrix}\right)
\]


Pds::Matrix A=Pds::CountingTable(2,3);
A.Print();
Parámetros
[in]NCantidad de numeros usados en el conteo (número de columnas en la matriz).
[in]MCantidad de posibles digitos.
Devuelve
Retorna la matriz con los indices.
Ejemplos
example_matrixfunc.cpp.

◆ CountingTable() [2/2]

Pds::Matrix Pds::CountingTable ( unsigned int  N,
int  min,
int  max,
unsigned int  from_id 
)

Calcula la matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y $M^N$ lineas. Las lineas de $\mathbf{S}_{N}(M)$ representan un conteo con $N$ numeros enteros que van de $min$ a $max$ donde $M=max+1-min$.

\[
\mathbf{S}_{2}(-1:1)=\left(\begin{matrix}
-1 & -1 \\
0 & -1 \\
1 & -1 \\
-1 & 0 \\
0 & 0 \\
1 & 0 \\
-1 & 1 \\
0 & 1 \\
1 & 1 \\
\end{matrix}\right)
\]

Despues retorna una sub matriz extraida desde la linea $from\_id$.

Comentarios
Por exemplo si

Pds::Matrix A=Pds::CountingTable(2,-1,1,5);
A.Print();
Obtemos:
1   0 
-1  1
0   1 
1   1 
Parámetros
[in]NCantidad de numeros usados en el conteo (número de columnas en la matriz).
[in]minMínimo valor del conteo.
[in]maxMáximo valor del conteo.
[in]from_idIndice incial del conteo.
Devuelve
Retorna la matriz con los indices.

◆ MultisetIndexSum()

Pds::Matrix Pds::MultisetIndexSum ( unsigned int  N,
unsigned int  M 
)

Retorna una matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y ${{N+M-1} \choose M}$ lineas. La lineas de $\mathbf{S}_{N}(M)$ tienen todas las combinaciones de $N$ numeros enteros que sumen $M$. Para obter $\mathbf{S}_{N}(M)$ es usada recursivamente la siguiente ecuación.

\[
\mathbf{S}_{N}(M)=\left(\begin{matrix}
\mathbf{S}_{N-1}(M) & \mathbf{\overline{0}}\\ 
\mathbf{S}_{N-1}(M-1) & \mathbf{\overline{1}}\\
\mathbf{S}_{N-1}(M-2) & \mathbf{\overline{2}}\\
\vdots & \vdots \\
\mathbf{S}_{N-1}(1) & \mathbf{\overline{M-1}}\\
\mathbf{S}_{N-1}(0) & \mathbf{\overline{M}}\\
\end{matrix}\right)
\]

Donde se sabe que

\[
\mathbf{S}_{1}(M) =M, \qquad \mathbf{S}_{N}(0)=[ 0\quad 0\quad ... \quad 0] 
\]

e $\mathbf{\overline{m}}$ es un vector columna lleno de $m$.

Comentarios
Por exemplo si

ID=Pds::MultisetIndexSum(3,2);
ID.Print();
Obtemos:
2 0 0 
1 1 0 
0 2 0 
1 0 1 
0 1 1 
0 0 2 
Parámetros
[in]NCantidad de numeros usados en la suma (número de columnas en la matriz).
[in]MValor de la suma de todos los numeros en una linea.
Devuelve
Retorna la matriz con los indices.
Ejemplos
example_funcmatrix_indexsum.cpp y example_matrixfunc.cpp.

◆ SetIndexSum()

Pds::Matrix Pds::SetIndexSum ( unsigned int  N,
unsigned int  M 
)

Retorna una matriz $\mathbf{S}_{N}(M)$ de $N$ columnas y ${N \choose M}$ lineas. La lineas de $\mathbf{S}_{N}(M)$ tienen todas las combinaciones de $N$ numeros binários que sumen $M$. Para obter $\mathbf{S}_{N}(M)$ es usada recursivamente la siguiente ecuación.

\[
\mathbf{S}_{N}(M)=\left(\begin{matrix}
\mathbf{S}_{N-1}(M) & \mathbf{\overline{0}}\\ 
\mathbf{S}_{N-1}(M-1) & \mathbf{\overline{1}}\\
\end{matrix}\right)
\]

Donde se sabe que

\[
\mathbf{S}_{M}(M) =[1...1], \qquad \mathbf{S}_{N}(0)=[ 0\quad 0\quad ... \quad 0] 
\]

e $\mathbf{\overline{m}}$ es un vector columna lleno de $m$.

Comentarios
Por exemplo si

ID=Pds::SetIndexSum(4,2);
ID.Print();
Obtemos:
1 1 0 0 
1 0 1 0 
0 1 1 0 
1 0 0 1 
0 1 0 1 
0 0 1 1 
Parámetros
[in]NCantidad de numeros usados en la suma (número de columnas en la matriz).
[in]MValor de la suma de todos los numeros en una linea.
Devuelve
Retorna la matriz con los indices.
Ejemplos
example_funcmatrix_indexsum.cpp y example_matrixfunc.cpp.

◆ MultisetIndexSumToString()

std::string Pds::MultisetIndexSumToString ( const Pds::Matrix ID,
std::string  Separator = ", ",
unsigned int  n = 1 
)

Retorna una cadena que representa una matriz de indices $\mathbf{ID}$ con $L$ lineas y $N$ columnas. Los indices $\mathbf{d}_l$ estan agrupados en las $L$ lineas de la matriz $\mathbf{ID}$.

\[
\mathbf{ID}= 
\left(\begin{matrix}
\mathbf{d}_1\\ 
\mathbf{d}_2 \\
\mathbf{d}_3 \\
\vdots  \\
\mathbf{d}_{L} \\
\end{matrix}\right)  \leftarrow Pds::MultisetIndexSum(N,M)
\]

Donde el indice $\mathbf{d}_l$ genera el monomio $\mathbf{\overline{X}}^{\mathbf{d}_l}\equiv \mathbf{x}_{n}^{d_{l1}} \mathbf{x}_{n+1}^{d_{l2}} \mathbf{x}_{n+2}^{d_{l3}} ... \mathbf{x}_{n+N-1}^{d_{lN}}$ se $n=1$ entonces $\mathbf{\overline{X}}^{\mathbf{d}_l}\equiv \mathbf{x}_{1}^{d_{l1}} \mathbf{x}_{2}^{d_{l2}} \mathbf{x}_{3}^{d_{l3}} ... \mathbf{x}_{N}^{d_{lN}}$


ID=Pds::SetIndexSum(4,2);
ID.Print();
std::cout<<Pds::MultisetIndexSumToString(ID,", ")<<std::endl;

Obtemos:

1 1 0 0 
1 0 1 0 
0 1 1 0 
1 0 0 1 
0 1 0 1 
0 0 1 1 
x_{1}x_{2}, x_{1}x_{3}, x_{2}x_{3}, x_{1}x_{4}, x_{2}x_{4}, x_{3}x_{4}
Parámetros
[in]IDUna matriz con indices en las lineas.
[in]SeparatorEl texto separador entre monomios.
[in]nValor inicial de n en $x_n$, si n=0 inicia en $x_{0}$
Devuelve
Una cadena con los indices.
Ejemplos
example_matrixfunc.cpp.

◆ Monomials() [1/2]

Pds::Matrix Pds::Monomials ( const Pds::Matrix X,
unsigned int  M,
Pds::Matrix ID 
)

Dada uma matriz $\mathbf{X}=\left[\mathbf{x}_1,\quad \mathbf{x}_2,\quad ...,\quad \mathbf{x}_n,\quad ...,\quad \mathbf{x}_N\right]$, compuesta por la concatenacion de $N$ vectores columna $\mathbf{x}_n$. La función retorna una matriz $\overline{\mathbf{X}}^{M}$ compuesta por $L=\left({N \choose M}\right)$ vectores columnas $\mathbf{\overline{X}}^{\mathbf{d}_l}$ que representan monomios de orden $M$.

\[
\overline{\mathbf{X}}^{M}=\left[
\mathbf{\overline{X}}^{\mathbf{d}_1},\quad 
\mathbf{\overline{X}}^{\mathbf{d}_2}, \quad
\mathbf{\overline{X}}^{\mathbf{d}_3}, \quad
...,\quad 
\mathbf{\overline{X}}^{\mathbf{d}_l}, \quad
...,\quad 
\mathbf{\overline{X}}^{\mathbf{d}_{L}}
\right]
\]

Donde $\mathbf{\overline{X}}^{\mathbf{c}}\equiv \mathbf{x}_1^{c_1} \mathbf{x}_2^{c_2} \mathbf{x}_3^{c_3} ... \mathbf{x}_N^{c_N}$, es la multiplicación elemento a elemento de las potencias de los vectores columna $\mathbf{x}_n$, donde $c_1+c_2+c_3+...+c_n+...+c_N=M$. Los indices estan agrupados en las lineas de la matriz $\mathbf{ID}$, esta tiene $L$ lineas y $N$ columnas

\[
\mathbf{ID}= \left(\begin{matrix}
\mathbf{d}_1\\ 
\mathbf{d}_2 \\
\mathbf{d}_3 \\
\vdots  \\
\mathbf{d}_{L-1} \\
\mathbf{d}_{L} \\
\end{matrix}\right)
\leftarrow 
Pds::MultisetIndexSum(N,M) 
\]

La función calcula los exponentes en los monomios usando Pds::MultisetIndexSum(N,M).

Comentarios
Por ejemplo si tenemos la matriz $\mathbf{X}=[\mathbf{x}_1~\mathbf{x}_2]$ de $M=2$ columnas, obtenemos la matriz $\mathbf{H}=[\mathbf{x}_{1}^{2}~~\mathbf{x}_1\mathbf{x}_2~~\mathbf{x}_{2}^{2}]$.

Pds::Matrix X = Pds::MatrixId(3,2);
X.Print("X:\n");
Pds::Matrix ID;
Pds::Matrix H=Pds::Monomials(X,2,ID);
ID.T().Print("ID.T():\n");
H.Print("H:\n");
Obtemos:
X:
0 3 
1 4 
2 5 
ID.T():
2  1  0
0  1  2
H:
0  0  9  
1  4  16 
4  10 25
Parámetros
[in]XMatriz $\mathbf{X}=\left[\mathbf{x}_1,\quad \mathbf{x}_2,\quad ...,\quad \mathbf{x}_N\right]$.
[in]MOrden de los monomios.
[out]IDMatriz de indices de todos los monomios en las columnas de la matriz $\overline{\mathbf{X}}^{M}$. Para visualizar usa la función std::string str=Pds::MultisetIndexSumToString(ID).
Devuelve
Retorna la matriz $\overline{\mathbf{X}}^{M}$ con los monomios.
Ejemplos
example_matrixfunc.cpp.

◆ Monomials() [2/2]

Pds::Matrix Pds::Monomials ( const Pds::Matrix X,
unsigned int  M 
)

Dada uma matriz $\mathbf{X}=\left[\mathbf{x}_1,\quad \mathbf{x}_2,\quad ...,\quad \mathbf{x}_n,\quad ...,\quad \mathbf{x}_N\right]$, compuesta por la concatenacion de $N$ vectores columna $\mathbf{x}_n$. La función retorna una matriz $\overline{\mathbf{X}}^{M}$ compuesta por $L=\left({N \choose M}\right)$ vectores columnas $\mathbf{\overline{X}}^{\mathbf{d}_l}$ que representan monomios de orden $M$.

\[
\overline{\mathbf{X}}^{M}=\left[
\mathbf{\overline{X}}^{\mathbf{d}_1},\quad 
\mathbf{\overline{X}}^{\mathbf{d}_2}, \quad
\mathbf{\overline{X}}^{\mathbf{d}_3}, \quad
...,\quad 
\mathbf{\overline{X}}^{\mathbf{d}_l}, \quad
...,\quad 
\mathbf{\overline{X}}^{\mathbf{d}_{L}}
\right]
\]

Donde $\mathbf{\overline{X}}^{\mathbf{c}}\equiv \mathbf{x}_1^{c_1} \mathbf{x}_2^{c_2} \mathbf{x}_3^{c_3} ... \mathbf{x}_N^{c_N}$, es la multiplicación elemento a elemento de las potencias de los vectores columna $\mathbf{x}_n$, donde $c_1+c_2+c_3+...+c_n+...+c_N=M$. Los indices estan agrupados en las lineas de la matriz $\mathbf{ID}$, esta tiene $L$ lineas y $N$ columnas

\[
\mathbf{ID}= \left(\begin{matrix}
\mathbf{d}_1\\ 
\mathbf{d}_2 \\
\mathbf{d}_3 \\
\vdots  \\
\mathbf{d}_{L-1} \\
\mathbf{d}_{L} \\
\end{matrix}\right)
\leftarrow 
Pds::MultisetIndexSum(N,M) 
\]

La función calcula los exponentes en los monomios usando Pds::MultisetIndexSum(N,M).

Comentarios
Por ejemplo si tenemos la matriz $\mathbf{X}=[\mathbf{x}_1~\mathbf{x}_2]$ de $M=2$ columnas, obtenemos la matriz $\mathbf{H}=[\mathbf{x}_{1}^{2}~~\mathbf{x}_1\mathbf{x}_2~~\mathbf{x}_{2}^{2}]$.

Pds::Matrix X = Pds::MatrixId(3,2);
X.Print("X:\n");
Pds::Matrix H=Pds::Monomials(X,2);
H.Print("H:\n");
Obtemos:
X:
0 3 
1 4 
2 5 
H:
0  0  9  
1  4  16 
4  10 25
Parámetros
[in]XMatriz $\mathbf{X}=\left[\mathbf{x}_1,\quad \mathbf{x}_2,\quad ...,\quad \mathbf{x}_N\right]$.
[in]MOrden de los monomios.
Devuelve
Retorna la matriz $\overline{\mathbf{X}}^{M}$ con los monomios.

◆ Find()

std::vector< unsigned int > Pds::Find ( const Pds::Matrix A)

Retorna una lista de indices donde existe un 1 en la matriz A.


Pds::Matrix X = Pds::Eye(3);

std::vector<unsigned int> id=Pds::Find(X);

std::cout<<Pds::Ra::IndicesToString(id,",")<<"\n";

Obtemos:

0,4,8
Parámetros
[in]AMatriz a consultar.
Devuelve
Retorna una lista de indices donde existe un 1 en la matriz A.
Ejemplos
example_matrixfunc.cpp.

◆ MergeVer() [1/4]

Pds::Matrix Pds::MergeVer ( const std::initializer_list< Pds::Matrix list)

Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error.


Pds::Matrix A=Pds::MergeVer({Pds::Eye(3),Pds::Ones(3)});

A.Print();

Obtemos:

1 0 0
0 1 0
0 0 1
1 1 1
1 1 1
1 1 1
Parámetros
[in]listLa lista de matrices a concatenar.
Devuelve
Retorna la matriz concatenada o una matriz vacía en caso de error.
Ejemplos
example_ellipse_getellipse.cpp, example_funcmatrix_merge.cpp, example_line2d_create.cpp, example_matrixfunc.cpp y example_octave_pairwisescatterxy.cpp.

◆ MergeVer() [2/4]

Pds::Matrix Pds::MergeVer ( const std::list< Pds::Matrix > &  list)

Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error.


std::list<Pds::Matrix> list={Pds::Eye(3),Pds::Ones(3)};
Pds::Matrix A=Pds::MergeVer(list);

A.Print();

Obtemos:

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

◆ MergeVer() [3/4]

Pds::Matrix Pds::MergeVer ( const std::vector< Pds::Matrix > &  vec)

Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error.


std::vector<Pds::Matrix> vec={Pds::Eye(3),Pds::Ones(3)};
Pds::Matrix A=Pds::MergeVer(vec);

A.Print();

Obtemos:

1 0 0
0 1 0
0 0 1
1 1 1
1 1 1
1 1 1
Parámetros
[in]vecLa lista de matrices a concatenar.
Devuelve
Retorna la matriz concatenada o una matriz vacía en caso de error.

◆ MergeVer() [4/4]

Pds::Matrix Pds::MergeVer ( const std::vector< Pds::Vector > &  vec)

Retorna una matriz concatenando verticalmente otras.
Si las matrices no tienen el mismo número de columnas se considera um error.


std::vector<Pds::Vector> vec={Pds::X2D(),Pds::Y2D()};
Pds::Matrix A=Pds::MergeVer(vec);

A.Print();

Obtemos:

1 
0 
0 
1 
Parámetros
[in]vecLa lista de matrices a concatenar.
Devuelve
Retorna la matriz concatenada o una matriz vacía en caso de error.

◆ MergeHor() [1/4]

Pds::Matrix Pds::MergeHor ( const std::initializer_list< Pds::Matrix list)

Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error.


Pds::Matrix A=Pds::MergeHor({Pds::Eye(3),Pds::Ones(3)});

A.Print();

Obtemos:

1 0 0 1 1 1
0 1 0 1 1 1
0 0 1 1 1 1
Parámetros
[in]listLa lista de matrices a concatenar.
Devuelve
Retorna la matriz concatenada o una matriz vacía en caso de error.
Ejemplos
example_funcmatrix_merge.cpp y example_matrixfunc.cpp.

◆ MergeHor() [2/4]

Pds::Matrix Pds::MergeHor ( const std::list< Pds::Matrix > &  list)

Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error.


std::list<Pds::Matrix> list={Pds::Eye(3),Pds::Ones(3)};
Pds::Matrix A=Pds::MergeHor(list);

A.Print();

Obtemos:

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

◆ MergeHor() [3/4]

Pds::Matrix Pds::MergeHor ( const std::vector< Pds::Matrix > &  vec)

Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error.


std::vector<Pds::Matrix> vec={Pds::Eye(3),Pds::Ones(3)};
Pds::Matrix A=Pds::MergeHor(vec);

A.Print();

Obtemos:

1 0 0 1 1 1
0 1 0 1 1 1
0 0 1 1 1 1
Parámetros
[in]vecLa lista de matrices a concatenar.
Devuelve
Retorna la matriz concatenada o una matriz vacía en caso de error.

◆ MergeHor() [4/4]

Pds::Matrix Pds::MergeHor ( const std::vector< Pds::Vector > &  vec)

Retorna una matriz concatenando horizontalmente otras.
Si las matrices no tienen el mismo número de lineas se considera um error.


std::vector<Pds::Vector> vec={Pds::X2D(),Pds::Y2D()};
Pds::Matrix A=Pds::MergeHor(vec);

A.Print();

Obtemos:

1 0
0 1
Parámetros
[in]vecLa lista de matrices a concatenar.
Devuelve
Retorna la matriz concatenada o una matriz vacía en caso de error.

◆ RegressorMatrix() [1/4]

Pds::Matrix Pds::RegressorMatrix ( const std::initializer_list< Pds::Matrix list)

Retorna una Regressor Matrix $\mathbf{R}$, creado concatenando verticalmente las matrices $\mathbf{list_n}$ en una lista $\mathbf{list}$.
Si las matrices no tienen el mismo número de columnas se considera um error.

\[
\mathbf{R}=\left(\begin{matrix}
\overline{1} & \mathbf{list_0}\\ 
\overline{1} & \mathbf{list_1}\\
\overline{1} & \mathbf{list_2}\\
\vdots & \vdots\\
\overline{1} & \mathbf{list_{N-1}}\\
\end{matrix}\right)
   \]


Pds::Matrix R=Pds::RegressorMatrix({Pds::Eye(3),Pds::Zeros(3)});

R.Print();

Obtemos:

1 1 0 0 
1 0 1 0 
1 0 0 1 
1 0 0 0 
1 0 0 0 
1 0 0 0 
Parámetros
[in]listLa lista de matrices $\mathbf{list_n}$ a concatenar.
Devuelve
Retorna una Regressor Matrix o una matriz vacía en caso de error.
Ejemplos
example_matrixfunc.cpp y example_optadam_create.cpp.

◆ RegressorMatrix() [2/4]

Pds::Matrix Pds::RegressorMatrix ( const Pds::Matrix B)

Retorna una Regressor Matrix $\mathbf{R}$ creado concatenando horizontalmente un vector de unos $\overline{\mathbf{1}}$ con una matriz $\mathbf{B}$.

\[
\mathbf{R}=\left(\begin{matrix}
\overline{\mathbf{1}} & \mathbf{B}
\end{matrix}\right)
   \]


Pds::Matrix R=Pds::RegressorMatrix(Pds::Eye(3));

R.Print();

Obtemos:

1 1 0 0 
1 0 1 0 
1 0 0 1 
Parámetros
[in]BLa matriz a usar.
Devuelve
Retorna una Regressor Matrix o una matriz vacía en caso de error.

◆ RegressorMatrix() [3/4]

Pds::Matrix Pds::RegressorMatrix ( const Pds::Matrix B,
unsigned int  M 
)

Retorna una Regressor Matrix $\mathbf{R}$ para una forma polinomial multivariada de orden M. $\mathbf{R}$ es creado concatenando horizontalmente matrices $\overline{\mathbf{B}}^{m},~\forall m \in \{0,1,2,...,M\}$.

\[
\mathbf{R}=\left(\begin{matrix}
\overline{1} & \overline{\mathbf{B}}^{1} & \overline{\mathbf{B}}^{2} & ... & \overline{\mathbf{B}}^{m} & ... & \overline{\mathbf{B}}^{M}
\end{matrix}\right)
   \]

Donde $\overline{\mathbf{B}}^{m}$ es una matriz con todos los monomios de grado $m$ creado a partir de la matriz $\mathbf{B}=[\mathbf{x}_1,\mathbf{x}_2,\mathbf{x}_3,...,\mathbf{x}_N]$, es decir $\overline{\mathbf{B}}^{m}$ = Pds::Monomials(B,m).


Pds::Matrix B=Pds::MatrixId(2);
Pds::Matrix R=Pds::RegressorMatrix(B,2);

R.Print();

Obtemos:

1 0 2 0 0 4 
1 1 3 1 3 9 
Parámetros
[in]BLa matriz a usar.
[in]MEl orden del polinomio multivariado.
Devuelve
Retorna una Regressor Matrix o una matriz vacía en caso de error.
Ver también
Pds::Monomials()

◆ RegressorMatrix() [4/4]

Pds::Matrix Pds::RegressorMatrix ( const Pds::Matrix B,
unsigned int  M,
Pds::Matrix ID 
)

Retorna una Regressor Matrix $\mathbf{R}$ para una forma polinomial multivariada de orden M. $\mathbf{R}$ es creado concatenando horizontalmente matrices $\overline{\mathbf{B}}^{m},~\forall m \in \{0,1,2,...,M\}$.

\[
\mathbf{R}=\left(\begin{matrix}
\overline{1} & \overline{\mathbf{B}}^{1} & \overline{\mathbf{B}}^{2} & ... & \overline{\mathbf{B}}^{m} & ... & \overline{\mathbf{B}}^{M}
\end{matrix}\right)
   \]

Donde $\overline{\mathbf{B}}^{m}$ es una matriz con todos los monomios de grado $m$ creado a partir de la matriz $\mathbf{B}=[\mathbf{x}_1,\mathbf{x}_2,\mathbf{x}_3,...,\mathbf{x}_N]$, es decir $\overline{\mathbf{B}}^{m}$=Pds::Monomials(B,m).


Pds::Matrix ID;
Pds::Matrix B=Pds::MatrixId(2);
Pds::Matrix R=Pds::RegressorMatrix(B,2,ID);

R.Print();

Obtemos:

1 0 2 0 0 4 
1 1 3 1 3 9 
Parámetros
[in]BLa matriz a usar.
[in]MEl orden del polinomio multivariado.
[out]IDLa matriz donde sus lineas representan los indices de los monomios en las columnas de $\mathbf{R}$.
Devuelve
Retorna una Regressor Matrix o una matriz vacía en caso de error.
Ver también
Pds::Monomials()

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed