Home | Develop | Download | Contact
Estructuras de datos | defines
Módulo PdsMatrix.

Funciones que trabajan con matrices. Más...

Estructuras de datos

struct  PdsMatrix
 La estructura tipo PdsMatrix . Esta estructura genera una matriz de Nlin lineas y Ncol columnas. Para usar incluir pds/pdsmatrix.h. Más...
 

defines

#define PDS_OK   1
 
#define PDS_WRONG   0
 

pds_matrix_new

Creando nuevos matrices

PdsMatrixpds_matrix_new (PdsRaNatural Nlin, PdsRaNatural Ncol)
 Crea una matriz de tipo PdsMatrix e inicia con cero todos los elementos. Más...
 
PdsMatrixpds_matrix_new_rand (PdsRaNatural Nlin, PdsRaNatural Ncol)
 Crea una matriz de tipo PdsMatrix e inicializa los elementos con números aleatorios uniformemente distribuidos entre [0.0,1.0>. Más...
 
PdsMatrixpds_matrix_new_matrix (const PdsMatrix *MatSrc)
 Crea una matriz de tipo PdsMatrix a partir de la matriz MatSrc. Más...
 
PdsMatrixpds_matrix_new_load_data (const char *datafile)
 Crea una nueva matriz e inicia los datos con los elementos de la linea line del archivo datafile. Usa TAB como delimitador de elemento y un salto de linea como delimitador de linea. Si se pide una linea inexistente la funcion retorna NULL. Más...
 

pds_matrix_copy

Copiando matrices

int pds_matrix_copy_matrix (PdsMatrix *Matrix, PdsRaNatural X1, PdsRaNatural Y1, const PdsMatrix *MatSrc, PdsRaNatural X2, PdsRaNatural Y2)
 Copia en la matriz Matrix en la posicion (X1,Y1) la matriz MatSrc desde la posicion (X2,Y2). Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(X1,Y1)=MatSrc(X2,Y2). Más...
 
int pds_matrix_copy_vector_col (PdsMatrix *Matrix, const PdsVector *VecSrc, PdsRaNatural col)
 Copia vector VecSrc en la columna col de la matriz Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(:,col)=VecSrc. Más...
 
int pds_matrix_copy_vector_lin (PdsMatrix *Matrix, const PdsVector *VecSrc, PdsRaNatural lin)
 Copia vector VecSrc en la linea lin de la matriz Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(:,col)=VecSrc. Más...
 
int pds_matrix_copy_identity (PdsMatrix *Matrix, PdsRaNatural X, PdsRaNatural Y, PdsRaReal Val)
 Copia en la matriz Matrix una matriz identidad(Val) en la posicion (X,Y). Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(NLin,NCol)=MatSrc. Más...
 
int pds_matrix_copy_region_to_region (PdsMatrix *M1, PdsRegionRect R1, const PdsMatrix *M0, PdsRegionRect R0)
 Copia la región R0 de la matriz M0 a la región R1 de la matriz M1. Más...
 

pds_matrix_init

Iniciando matrices

int pds_matrix_init_identity (PdsMatrix *Matrix, PdsRaReal Val)
 Inicia la matriz de tipo puntero PdsMatrix con una diagonal de valor Val y llena el resto de ceros.
Matrix=Val*I. Más...
 
int pds_matrix_init_matrix (PdsMatrix *Matrix, const PdsMatrix *MatSrc)
 Inicia la matriz de tipo puntero PdsMatrix con una matriz. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=MatSrc. Más...
 
int pds_matrix_init_value (PdsMatrix *Matrix, PdsRaReal Val)
 Inicia la matriz de tipo puntero PdsMatrix con un valor.
Matrix=Val. Más...
 
int pds_matrix_init_rand (PdsMatrix *Matrix)
 Inicia la matriz de tipo puntero PdsMatrix con valores aleatorios entre 0.0 e 1.0. La función usa internamente la función rand(). Más...
 
int pds_matrix_init_region (PdsMatrix *Matrix, PdsRegionRect R, PdsRaReal val)
 Inicializa la región R de matriz Matrix con el valor val. Más...
 

pds_matrix_<operator>

Operaciones con matrices

int pds_matrix_add_identity (PdsMatrix *Matrix, PdsRaReal Val)
 Suma a la matriz de tipo puntero PdsMatrix con una diagonal de valor Val y suma cero al resto.
Matrix=Matrix+Val*I. Más...
 
int pds_matrix_add_matrix (PdsMatrix *Matrix, const PdsMatrix *MatSrc)
 Suma la matriz de tipo puntero PdsMatrix con una matriz MatSrc y lo carga en Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=Matrix+MatSrc. Más...
 
int pds_matrix_add_value (PdsMatrix *Matrix, PdsRaReal Val)
 Suma a la matriz de tipo puntero PdsMatrix un valor.
Matrix=Matrix+Val. Más...
 
int pds_matrix_sub_matrix (PdsMatrix *Matrix, const PdsMatrix *MatSrc)
 Resta la matriz de tipo puntero PdsMatrix con una matriz MatSrc y lo carga en Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=Matrix-MatSrc. Más...
 
int pds_matrix_mul_matrix_elements (PdsMatrix *Matrix, const PdsMatrix *MatSrc)
 Multiplica la matriz de tipo puntero PdsMatrix con una matriz MatSrc elemento a elemento y lo carga en Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=Matrix.MatSrc. Más...
 
int pds_matrix_mul_matrix (PdsMatrix *Matrix, const PdsMatrix *MatSrc1, const PdsMatrix *MatSrc2)
 Multiplica la matriz MatSrc1 (Nlin1xNcol1) con la matriz MatSrc2 (Nlin2xNcol2) y lo carga en Matrix (Nlin1xNcol2).
Matrix=MatSrc1*MatSrc2. Más...
 
PdsMatrixpds_matrix_mul_matrix_new (const PdsMatrix *MatSrc1, const PdsMatrix *MatSrc2)
 Multiplica la matriz MatSrc1 (Nlin1xNcol1) con la matriz MatSrc2 (Nlin2xNcol2) y devuelve una matriz Matrix (Nlin1xNcol2).
Matrix=MatSrc1*MatSrc2. Más...
 
int pds_matrix_mul_vector (PdsVector *A, const PdsMatrix *M, const PdsVector *V)
 Multiplica la matriz M con el vector V y devuelve un vector A.
A=M*V. Más...
 
PdsVectorpds_matrix_mul_vector_new (const PdsMatrix *M, const PdsVector *V)
 Multiplica la matriz M con el vector V y devuelve un vector A.
A=M*V. Más...
 
int pds_matrix_mul_value (PdsMatrix *Matrix, PdsRaReal Val)
 Multiplica a la matriz de tipo puntero PdsMatrix por un valor.
Matrix=Val*Matrix. Más...
 
PdsMatrixpds_matrix_transpose_new (const PdsMatrix *M)
 Genera la transpuesta de la matriz.
Mt=M^T. Más...
 
int pds_matrix_transpose (PdsMatrix *Mt, const PdsMatrix *M)
 Genera la transpuesta de la matriz.
Mt=M^T. Más...
 
int pds_matrix_inverse_matrix (const PdsMatrix *Matrix, PdsMatrix *MatInv)
 Invierte la matriz Matrix y la guarda en MatInv. Ambas matrices deben existir y tener el mismo tamanho.
MatInv=Matrix^{-1}. Más...
 
PdsMatrixpds_matrix_inverse_matrix_new (const PdsMatrix *Matrix)
 Invierte la matriz Matrix y la guarda en MatInv. Ambas matrices deben existir y tener el mismo tamanho.
MatInv=Matrix^{-1}. Más...
 

pds_matrix_<methods>

funciones con matrices

PdsMatrixpds_matrix_mtm_new (const PdsMatrix *M)
 Genera
M^T*M. Más...
 
PdsMatrixpds_matrix_mtm_ai_new (const PdsMatrix *M, PdsRaReal Alpha)
 Genera
M^T*M + Alpha*I. Más...
 
int pds_matrix_linear_least_square (const PdsVector *U, const PdsMatrix *H, PdsVector *Z)
 Encuentra Z de modo que intenta satifazer U=HZ. Para conseguir esto usa la siguiente asignación :
Z<=(H'H)^(-1)H'U Más...
 
int pds_matrix_tikhonov_nolinear_least_square (const PdsVector *U, const PdsMatrix *J, const PdsVector *F, PdsRaReal Alpha, PdsVector *Z)
 Encuentra Z iterativamente de modo que intenta satifazer U=F(Z). Usa la siguiente equacion iterativa:
Z <= Z + (J'J + Alpha I)^(-1)(J'(U-F(Z))-Alpha Z). Más...
 
int pds_matrix_reduced_matrix (const PdsMatrix *Matrix, PdsMatrix *MatReduced)
 Reduce la matriz Matrix y la guarda en MatReduced.
MatReduced=Reduced{Matrix}. Más...
 

pds_matrix_statistical_<methods>

funciones estadísticas con matrices

int pds_matrix_mean (const PdsMatrix *Mat, PdsRaReal *mean)
 Calcula la media de los elementos de la matriz.
mean=MEAN{Mat}. Más...
 
int pds_matrix_std (const PdsMatrix *Mat, PdsRaReal *std)
 Calcula el desvío padrón de los elementos de la matriz.
std=STD{Mat}. Más...
 
int pds_matrix_std_and_mean (const PdsMatrix *Mat, PdsRaReal *std, PdsRaReal *mean)
 Calcula el desvío padrón y la media de los elementos de la matriz.
std=STD{Mat},
mean=MEAN{Mat}. Más...
 
int pds_matrix_corr_matrix (const PdsMatrix *M0, const PdsMatrix *M1, PdsRaReal *pcc)
 Calcula el coeficiente de correlación de Pearson (PCC) entre dos matrices.
PCC=corr{M0,M1}. Más...
 
int pds_matrix_mean_of_region (const PdsMatrix *Mat, PdsRegionRect Rin, PdsRaReal *mean)
 Calcula la media de los elementos de la intersecion de la region con la matriz.
mean=MEAN{Mat II Rin}. Más...
 
int pds_matrix_std_of_region (const PdsMatrix *Mat, PdsRegionRect Rin, PdsRaReal *std)
 Calcula el desvío padrón de los elementos de la intersección de la región con la matriz.
std=STD{Mat II Rin}. Más...
 
int pds_matrix_std_and_mean_of_region (const PdsMatrix *Mat, PdsRegionRect Rin, PdsRaReal *std, PdsRaReal *mean)
 Calcula el desvío padrón y la media de los elementos de la intersección de la región con la matriz.
std=STD{Mat II Rin},
mean=MEAN{Mat II Rin}. Más...
 
int pds_matrix_corr_matrix_of_region (const PdsMatrix *M0, const PdsMatrix *M1, PdsRegionRect R0, PdsRegionRect R1, PdsRaReal *pcc)
 Calcula el coeficiente de correlación de Pearson (PCC) entre los elementos de la intersección de la regiones con sus matrices. Más...
 

pds_matrix_row_<methods>

funciones con matrices

int pds_matrix_swap_rows (PdsMatrix *Matrix, PdsRaNatural r1, PdsRaNatural r2)
 Intercambia dos lineas de la matriz Matrix. Más...
 
int pds_matrix_row_add_row_factor (PdsMatrix *Matrix, PdsRaNatural r1, PdsRaNatural r2, PdsRaReal factor)
 Multiplica la linea r2 por un factor y el resulltado lo resta a linea r1.
Matrix{r1}=Matrix{r1}+factor*Matrix{r2}. Más...
 
int pds_matrix_row_mul_factor (PdsMatrix *Matrix, PdsRaNatural r1, PdsRaReal factor)
 Multiplica la linea r1 por un factor y el resulltado lo carga a linea r1.
Matrix{r1}=Matrix{r1}*factor. Más...
 
int pds_matrix_row_div_factor (PdsMatrix *Matrix, PdsRaNatural r1, PdsRaReal factor)
 Divide la linea r1 por un factor y el resulltado lo carga a linea r1.
Matrix{r1}=Matrix{r1}/factor. Más...
 

pds_matrix_<printf>

Imprimiendo datos de matrices

int pds_matrix_printf (const PdsMatrix *Matrix)
 Imprime en pantalla una matriz de tipo puntero PdsMatrix. Más...
 
int pds_matrix_fprintf (const PdsMatrix *Matrix, FILE *fd)
 Imprime en el archivo que apunta fd una matriz de tipo puntero PdsMatrix. Más...
 
int pds_matrix_fscanf (PdsMatrix *Matrix, FILE *fd)
 Inicializa una matriz con los datos del archivo apuntado por fd. Usa TAB o un salto de linea como delimitador de elemento. Más...
 
int pds_matrix_fwrite (PdsMatrix *Matrix, FILE *fd)
 Escribe los datos de una matriz en el archivo binario apuntado por fd. Más...
 
int pds_matrix_fread (PdsMatrix *Matrix, FILE *fd)
 Inicializa una matriz con los datos del archivo binario apuntado por fd. Más...
 

pds_matrix_<save>

Salvando datos de matrices

int pds_matrix_save_rgb_bmp (const PdsMatrix *R, const PdsMatrix *G, const PdsMatrix *B, const char *bmpfilename)
 Escribe los datos de una matriz en un archivo de en formato BMP. Más...
 
int pds_matrix_save_grayscale_bmp (const PdsMatrix *Mat, const char *bmpfilename)
 Escribe los datos de una matriz en un archivo de en formato BMP. Más...
 
int pds_matrix_save_bmp_with_colormap (const PdsMatrix *Mat, const char *bmpfilename, const unsigned char colormap[256][3])
 Escribe los datos de una matriz en un archivo de en formato BMP. Más...
 
int pds_matrix_octave_surf (const PdsMatrix *M, const char *labelx, const char *labely, const char *labelz, const char *octfile, const char *imgfile)
 Imprime una matriz M en un archivo de imagen usando como intermedio un archivo *.m de octave. Usando el comando surf. Más...
 

pds_matrix_get

Obteniendo datos de matrices

int pds_matrix_get_value (const PdsMatrix *Matrix, PdsRaNatural x, PdsRaNatural y, PdsRaReal *m)
 Devuelve el valor en la posición (x,y) de la matriz Matrix. (x,y) inicia con (0,0). Más...
 
int pds_matrix_get_nlines (const PdsMatrix *Matrix, PdsRaNatural *Nlines)
 Devuelve el número de lineas de la matriz Matrix. Más...
 
int pds_matrix_get_ncolumns (const PdsMatrix *Matrix, PdsRaNatural *Ncolumns)
 Devuelve el número de columnas de la matriz Matrix. Más...
 
int pds_matrix_get_region_rect (const PdsMatrix *Mat, PdsRegionRect *R)
 Carga la variable PdsRegionRect desde la posicion (0,0), con ancho y alto (Mat->Nlin,Mat->Ncol). Más...
 
int pds_matrix_get_min_value (const PdsMatrix *Matrix, PdsRaReal *m)
 Devuelve el valor mínimo de los elementos de la matriz Matrix. Más...
 
int pds_matrix_get_min_value_and_pos (const PdsMatrix *Matrix, PdsRaReal *m, PdsRaNatural *lin, PdsRaNatural *col)
 Devuelve el valor mínimo de los elementos de la matriz Matrix. Más...
 
int pds_matrix_get_max_value (const PdsMatrix *Matrix, PdsRaReal *m)
 Devuelve el valor máximo de los elementos de la matriz Matrix. Más...
 
int pds_matrix_get_max_value_and_pos (const PdsMatrix *Matrix, PdsRaReal *m, PdsRaNatural *lin, PdsRaNatural *col)
 Devuelve el valor máximo de los elementos de la matriz Matrix. Más...
 

pds_matrix_set

Escribiendo datos de matrices

int pds_matrix_set_value (PdsMatrix *Matrix, PdsRaNatural x, PdsRaNatural y, PdsRaReal m)
 Escribe el valor en la posición (x,y) de la matriz Matrix. En caso de que (x,y) estuvieran fuera de rango, no se considera como error simplemente no se escribe nada. (x,y) inicia con (0,0). Más...
 
#define PDS_MSET(Matrix, X, Y, m)   pds_matrix_set_value(Matrix,X,Y,m)
 

pds_matrix_is

Preguntas sobre matrices

int pds_matrix_is_equal (PdsMatrix *M1, PdsMatrix *M2)
 Compara dos matrices. Más...
 
int pds_matrix_is_quasiequal (PdsMatrix *M1, PdsMatrix *M2, double u)
 Compara dos matrices, y verifica si la diferencia absoluta de cada elemento es menor que un umbral u. Más...
 
int pds_matrix_is_diagonal (PdsMatrix *M1)
 Verifica si una matriz es diagonal. Más...
 
int pds_matrix_is_quasidiagonal (PdsMatrix *M1, double u)
 Verifica si una matriz es casi diagonal. Usa un umbral u, qualquier valor menor o igual que u es considerado cero. Más...
 
int pds_matrix_is_symetric (PdsMatrix *M1)
 Verifica si una matriz es simétrica. Más...
 
int pds_matrix_is_antisymetric (PdsMatrix *M1)
 Verifica si una matriz es anti simétrica. Más...
 

pds_matrix_<free>

Liberando matrices

void pds_matrix_free (PdsMatrix *Matrix)
 Libera una matriz de tipo puntero PdsMatrix. Más...
 
void pds_matrix_destroy (PdsMatrix **Matrix)
 Libera una matriz de tipo puntero PdsMatrix, y limpia el puntero con NULL. Más...
 

Descripción detallada

Funciones que trabajan con matrices.


Estas funciones trabajan con una matriz de la forma.

matrix.png
Matriz de NlinxNcol

Nlin es el número de lineas y Ncol es el número de columnas.

Informacion adicional puede ser encontrada en [1]

Documentación de los 'defines'

◆ PDS_OK

#define PDS_OK   1

Valor retornado en caso de exito, este es un valor diferente que cero.

Definición en la línea 64 del archivo pdsmatrix.h.

◆ PDS_WRONG

#define PDS_WRONG   0

Valor retornado en caso de fracaso, este valor es igual a cero.

Definición en la línea 72 del archivo pdsmatrix.h.

◆ PDS_MSET

#define PDS_MSET (   Matrix,
  X,
  Y,
 
)    pds_matrix_set_value(Matrix,X,Y,m)

Es equivalente a Matrix(X,Y)=m.

Definición en la línea 1020 del archivo pdsmatrix.h.

Documentación de las funciones

◆ pds_matrix_new()

PdsMatrix * pds_matrix_new ( PdsRaNatural  Nlin,
PdsRaNatural  Ncol 
)

Crea una matriz de tipo PdsMatrix e inicia con cero todos los elementos.

Parámetros
[in]NlinEs el número de lineas de la matriz.
[in]NcolEs el número de columnas de la matriz.
Devuelve
Un puntero a la matriz de tipo PdsMatrix.

◆ pds_matrix_new_rand()

PdsMatrix * pds_matrix_new_rand ( PdsRaNatural  Nlin,
PdsRaNatural  Ncol 
)

Crea una matriz de tipo PdsMatrix e inicializa los elementos con números aleatorios uniformemente distribuidos entre [0.0,1.0>.

Parámetros
[in]NlinEs el número de lineas de la matriz.
[in]NcolEs el número de columnas de la matriz.
Devuelve
Un puntero a la matriz de tipo PdsMatrix.

◆ pds_matrix_new_matrix()

PdsMatrix * pds_matrix_new_matrix ( const PdsMatrix MatSrc)

Crea una matriz de tipo PdsMatrix a partir de la matriz MatSrc.

Parámetros
[in]MatSrcMatriz que se usará como imagen como fuente.
Devuelve
Un puntero a la matriz de tipo PdsMatrix.

◆ pds_matrix_new_load_data()

PdsMatrix * pds_matrix_new_load_data ( const char *  datafile)

Crea una nueva matriz e inicia los datos con los elementos de la linea line del archivo datafile. Usa TAB como delimitador de elemento y un salto de linea como delimitador de linea. Si se pide una linea inexistente la funcion retorna NULL.

Parámetros
[in]datafileNombre del archivo de donde se cargará los datos iniciales de la matriz.
Devuelve
Un puntero que apunta a la dirección del nueva matriz, si todo fue bien, o NULL si no. (ej. datafile==NULL o line inexistente)

◆ pds_matrix_copy_matrix()

int pds_matrix_copy_matrix ( PdsMatrix Matrix,
PdsRaNatural  X1,
PdsRaNatural  Y1,
const PdsMatrix MatSrc,
PdsRaNatural  X2,
PdsRaNatural  Y2 
)

Copia en la matriz Matrix en la posicion (X1,Y1) la matriz MatSrc desde la posicion (X2,Y2). Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(X1,Y1)=MatSrc(X2,Y2).

Parámetros
[in,out]MatrixLa matriz a copiar.
[in]X1Linea en la que se copiará.
[in]Y1Columna en la que se copiará.
[in]MatSrcMatriz que se usara como fuente.
[in]X2Linea que se copiará.
[in]Y2Columna que se copiará.
Devuelve
PDS_OK si las matrices existen o PDS_WRONG si no.

◆ pds_matrix_copy_vector_col()

int pds_matrix_copy_vector_col ( PdsMatrix Matrix,
const PdsVector VecSrc,
PdsRaNatural  col 
)

Copia vector VecSrc en la columna col de la matriz Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(:,col)=VecSrc.

Parámetros
[in,out]MatrixLa matriz a copiar.
[in]VecSrcVector que se usará como fuente.
[in]colColumna a escribir.
Devuelve
PDS_OK si las matrices existen o PDS_WRONG si no.

◆ pds_matrix_copy_vector_lin()

int pds_matrix_copy_vector_lin ( PdsMatrix Matrix,
const PdsVector VecSrc,
PdsRaNatural  lin 
)

Copia vector VecSrc en la linea lin de la matriz Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(:,col)=VecSrc.

Parámetros
[in,out]MatrixLa matriz a copiar.
[in]VecSrcVector que se usará como fuente.
[in]linLinea a escribir.
Devuelve
PDS_OK si las matrices existen o PDS_WRONG si no.

◆ pds_matrix_copy_identity()

int pds_matrix_copy_identity ( PdsMatrix Matrix,
PdsRaNatural  X,
PdsRaNatural  Y,
PdsRaReal  Val 
)

Copia en la matriz Matrix una matriz identidad(Val) en la posicion (X,Y). Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix(NLin,NCol)=MatSrc.

Parámetros
[in,out]MatrixLa matriz a copiar.
[in]XLinea en la que se copiará.
[in]YColumna en la que se copiará.
[in]ValEl valor que será escrito en la diagonal.
Devuelve
PDS_OK si las matrices existen o PDS_WRONG si no.

◆ pds_matrix_copy_region_to_region()

int pds_matrix_copy_region_to_region ( PdsMatrix M1,
PdsRegionRect  R1,
const PdsMatrix M0,
PdsRegionRect  R0 
)

Copia la región R0 de la matriz M0 a la región R1 de la matriz M1.

Ambas regiones deben estar dentro de las matrices y tener el mismo tamaño para que la copia sea realizada.

Parámetros
[out]M1La matriz donde se escribirá.
[in]R1Región en donde se escribirá.
[in]M0Matriz que se usará como fuente.
[in]R0Región en donde se leerán los datos.
Devuelve
PDS_OK si las matrices existen y son copiables o PDS_WRONG si no.

◆ pds_matrix_init_identity()

int pds_matrix_init_identity ( PdsMatrix Matrix,
PdsRaReal  Val 
)

Inicia la matriz de tipo puntero PdsMatrix con una diagonal de valor Val y llena el resto de ceros.
Matrix=Val*I.

Parámetros
[in,out]MatrixLa matriz a iniciar.
[in]ValEl valor que será escrito en la diagonal.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_init_matrix()

int pds_matrix_init_matrix ( PdsMatrix Matrix,
const PdsMatrix MatSrc 
)

Inicia la matriz de tipo puntero PdsMatrix con una matriz. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=MatSrc.

Parámetros
[in,out]MatrixLa matriz a iniciar.
[in]MatSrcMatriz que se usara como fuente.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_init_value()

int pds_matrix_init_value ( PdsMatrix Matrix,
PdsRaReal  Val 
)

Inicia la matriz de tipo puntero PdsMatrix con un valor.
Matrix=Val.

Parámetros
[in,out]MatrixLa matriz a iniciar con un valor.
[in]ValEs el valor inicial de los elementos.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_init_rand()

int pds_matrix_init_rand ( PdsMatrix Matrix)

Inicia la matriz de tipo puntero PdsMatrix con valores aleatorios entre 0.0 e 1.0. La función usa internamente la función rand().

Parámetros
[in,out]MatrixLa matriz a iniciar con un valor.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_init_region()

int pds_matrix_init_region ( PdsMatrix Matrix,
PdsRegionRect  R,
PdsRaReal  val 
)

Inicializa la región R de matriz Matrix con el valor val.

Parámetros
[in,out]MatrixLa matriz a iniciar con un valor.
[in]RLa region a inicializar.
[in]valvalor a ser usado en la inicialización.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_add_identity()

int pds_matrix_add_identity ( PdsMatrix Matrix,
PdsRaReal  Val 
)

Suma a la matriz de tipo puntero PdsMatrix con una diagonal de valor Val y suma cero al resto.
Matrix=Matrix+Val*I.

Parámetros
[in,out]MatrixLa matriz destino y operando de la suma.
[in]ValEl valor que será sumado a la diagonal.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_add_matrix()

int pds_matrix_add_matrix ( PdsMatrix Matrix,
const PdsMatrix MatSrc 
)

Suma la matriz de tipo puntero PdsMatrix con una matriz MatSrc y lo carga en Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=Matrix+MatSrc.

Parámetros
[in,out]MatrixLa matriz que se usará como destino y operando.
[in]MatSrcMatriz que se sumará a Matrix.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_add_value()

int pds_matrix_add_value ( PdsMatrix Matrix,
PdsRaReal  Val 
)

Suma a la matriz de tipo puntero PdsMatrix un valor.
Matrix=Matrix+Val.

Parámetros
[in,out]MatrixLa matriz a la cual se le sumará un valor.
[in]ValEs el valor que se sumará a los elementos.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_sub_matrix()

int pds_matrix_sub_matrix ( PdsMatrix Matrix,
const PdsMatrix MatSrc 
)

Resta la matriz de tipo puntero PdsMatrix con una matriz MatSrc y lo carga en Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=Matrix-MatSrc.

Parámetros
[in,out]MatrixLa matriz que se usará como destino y operando.
[in]MatSrcMatriz que se sumará a Matrix.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_mul_matrix_elements()

int pds_matrix_mul_matrix_elements ( PdsMatrix Matrix,
const PdsMatrix MatSrc 
)

Multiplica la matriz de tipo puntero PdsMatrix con una matriz MatSrc elemento a elemento y lo carga en Matrix. Si los tamaños son diferentes intersecta los tamaños y hace la copia en la intersección solamente.
Matrix=Matrix.MatSrc.

Parámetros
[in,out]MatrixLa matriz que se usará como destino y operando.
[in]MatSrcMatriz que se multiplicará a Matrix.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_mul_matrix()

int pds_matrix_mul_matrix ( PdsMatrix Matrix,
const PdsMatrix MatSrc1,
const PdsMatrix MatSrc2 
)

Multiplica la matriz MatSrc1 (Nlin1xNcol1) con la matriz MatSrc2 (Nlin2xNcol2) y lo carga en Matrix (Nlin1xNcol2).
Matrix=MatSrc1*MatSrc2.

Parámetros
[in,out]MatrixLa matriz que se usará como destino, esta matriz ya debe estar creada, todo su contenido será sobrescrito.
[in]MatSrc1Matriz que se multiplicará a MatSrc2.
[in]MatSrc2Matriz que se multiplicará a MatSrc1.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. Puede retornar PDS_WRONG si alguna de las matrices es NULL, o si el número de lineas (Nlin1) de Matrix no corresponde al número de lineas (Nlin1) de MatSrc1, o si el número de columnas (Ncol2) de Matrix no corresponde al número de columnas (Ncol2) de MatSrc2, o si Ncol1!=Nlin2, e cualquiera de esos errores la matriz Matrix no es alterada.

◆ pds_matrix_mul_matrix_new()

PdsMatrix * pds_matrix_mul_matrix_new ( const PdsMatrix MatSrc1,
const PdsMatrix MatSrc2 
)

Multiplica la matriz MatSrc1 (Nlin1xNcol1) con la matriz MatSrc2 (Nlin2xNcol2) y devuelve una matriz Matrix (Nlin1xNcol2).
Matrix=MatSrc1*MatSrc2.

Parámetros
[in]MatSrc1Matriz que se multiplicará a MatSrc2.
[in]MatSrc2Matriz que se multiplicará a MatSrc1.
Devuelve
La multiplicación de las matrices si todo fue bien o NULL si no. Puede retornar NULL si alguna de las matrices es NULL, o si Ncol1!=Nlin2.

◆ pds_matrix_mul_vector()

int pds_matrix_mul_vector ( PdsVector A,
const PdsMatrix M,
const PdsVector V 
)

Multiplica la matriz M con el vector V y devuelve un vector A.
A=M*V.

Parámetros
[out]AVector donde se cargará la multiplicación.
[in]MMatriz que se multiplicará.
[in]VVector que se multiplicará.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. Puede retornar PDS_WRONG si la matriz no tiene el mismo número de columnas que elementos tiene V. O si el numero de elementos de A es distinto al número de lineas de M.

◆ pds_matrix_mul_vector_new()

PdsVector * pds_matrix_mul_vector_new ( const PdsMatrix M,
const PdsVector V 
)

Multiplica la matriz M con el vector V y devuelve un vector A.
A=M*V.

Parámetros
[in]MMatriz que se multiplicará.
[in]VVector que se multiplicará.
Devuelve
La multiplicación de la matriz por el vector si todo fue bien o NULL si no. Puede retornar NULL si la matriz no tiene el mismo número de columnas que elementos tiene V. O si el numero de elementos de A es distinto al número de lineas de M.

◆ pds_matrix_mul_value()

int pds_matrix_mul_value ( PdsMatrix Matrix,
PdsRaReal  Val 
)

Multiplica a la matriz de tipo puntero PdsMatrix por un valor.
Matrix=Val*Matrix.

Parámetros
[in,out]MatrixLa matriz a la cual se le multiplicará un valor.
[in]ValEs el valor que se sumará a los elementos.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_transpose_new()

PdsMatrix * pds_matrix_transpose_new ( const PdsMatrix M)

Genera la transpuesta de la matriz.
Mt=M^T.

\[ Mt=M^{T} \]

Parámetros
[in]MLa matriz a la cual se le aplicará la transpuesta.
Devuelve
La transpuesta de la matriz o NULL en caso de error.(ej. M==NULL).

◆ pds_matrix_transpose()

int pds_matrix_transpose ( PdsMatrix Mt,
const PdsMatrix M 
)

Genera la transpuesta de la matriz.
Mt=M^T.

Parámetros
[in]MtLa transpuesta de la matriz M.

\[ Mt=M^{T} \]

Parámetros
[in]MLa matriz a la cual se le aplicará la transpuesta.
Devuelve
RUE si todo fue bien o PDS_WRONG si no.(ej. M==NULL Mt==NULL).

◆ pds_matrix_inverse_matrix()

int pds_matrix_inverse_matrix ( const PdsMatrix Matrix,
PdsMatrix MatInv 
)

Invierte la matriz Matrix y la guarda en MatInv. Ambas matrices deben existir y tener el mismo tamanho.
MatInv=Matrix^{-1}.

\[ MatInv=Matrix^{-1} \]

Parámetros
[in]MatrixLa matriz de en consulta.
[out]MatInvMatriz inversa.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL). Puede retornar PDS_WRONG por causa de MatInv tenga distinto tamaño que Matrix, MatInv==NULL o Matrix==NULL.

◆ pds_matrix_inverse_matrix_new()

PdsMatrix * pds_matrix_inverse_matrix_new ( const PdsMatrix Matrix)

Invierte la matriz Matrix y la guarda en MatInv. Ambas matrices deben existir y tener el mismo tamanho.
MatInv=Matrix^{-1}.

\[ MatInv=Matrix^{-1} \]

Parámetros
[in]MatrixLa matriz de en consulta.
Devuelve
Un puntero que apunta a una nueva estructura con la multiplicación. Retorna NULL si fallo en la inversión, o si Matrix==NULL.

◆ pds_matrix_mtm_new()

PdsMatrix * pds_matrix_mtm_new ( const PdsMatrix M)

Genera
M^T*M.

\[ M^T M \]

Parámetros
[in]MLa matriz a la cual se le aplicará la operación.
Devuelve
La
M^T * M de la matriz o NULL en caso de error.(ej. M==NULL).

◆ pds_matrix_mtm_ai_new()

PdsMatrix * pds_matrix_mtm_ai_new ( const PdsMatrix M,
PdsRaReal  Alpha 
)

Genera
M^T*M + Alpha*I.

\[ M^T M + \alpha I \]

Parámetros
[in]MLa matriz a la cual se le aplicará la operación.
[in]AlphaFactor que se multiplicará a la identidad.
Devuelve
La
M^T * M + Alpha * I de la matriz o NULL en caso de error.(ej. M==NULL).

◆ pds_matrix_linear_least_square()

int pds_matrix_linear_least_square ( const PdsVector U,
const PdsMatrix H,
PdsVector Z 
)

Encuentra Z de modo que intenta satifazer U=HZ. Para conseguir esto usa la siguiente asignación :
Z<=(H'H)^(-1)H'U

\[ e^2=||U - H Z||^2 \]

\[ \frac{\partial e^2}{\partial Z}=0 \]

\[ Z\leftarrow ( H^T H )^{-1} H^T U \]

Parámetros
[in]UValor de salida del sistema de ecuaciones U=HZ.
[in]HMatriz del sistema.
[out]ZIncognita del sistema, aquí es cargado el resultado.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej U==NULL,H==NULL o Z==NULL)

◆ pds_matrix_tikhonov_nolinear_least_square()

int pds_matrix_tikhonov_nolinear_least_square ( const PdsVector U,
const PdsMatrix J,
const PdsVector F,
PdsRaReal  Alpha,
PdsVector Z 
)

Encuentra Z iterativamente de modo que intenta satifazer U=F(Z). Usa la siguiente equacion iterativa:
Z <= Z + (J'J + Alpha I)^(-1)(J'(U-F(Z))-Alpha Z).

\[ e^2={||U-F(Z)||}^2+\alpha {||Z-Z_{old}||}^2 \]

\[ \frac{\partial e^2}{\partial Z}=0 \]

\[ Z \leftarrow Z+ {\left[ {J(Z)}^T {J(Z)} + \alpha I\right]}^{-1} \left[{J(Z)}^T (U-F(Z))-\alpha Z\right] \]

Parámetros
[in]U$U$ Valor de salida del sistema de ecuaciones.
[in]J$J(Z)$ matriz jacobiano de F con respecto a Z.
[in]F$F(Z)$ Vector que depende de Z.
[in]Alpha$\alpha$ Factor de regularización.
[out]ZIncognita del sistema, aquí es cargado el resultado.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej U==NULL,H==NULL o Z==NULL)

◆ pds_matrix_reduced_matrix()

int pds_matrix_reduced_matrix ( const PdsMatrix Matrix,
PdsMatrix MatReduced 
)

Reduce la matriz Matrix y la guarda en MatReduced.
MatReduced=Reduced{Matrix}.

Una matriz es reducida cuando: Es una matriz escalonada. Sus pivotes son todos iguales a 1 En cada fila el pivote es el único elemento no nulo de su columna

Parámetros
[in]MatrixLa matriz de en consulta.
[out]MatReducedMatriz reducida.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL). Puede retornar PDS_WRONG por causa de MatReduced tenga distinto tamaño que Matrix, MatReduced==NULL o Matrix==NULL.

◆ pds_matrix_mean()

int pds_matrix_mean ( const PdsMatrix Mat,
PdsRaReal mean 
)

Calcula la media de los elementos de la matriz.
mean=MEAN{Mat}.

\[ mean=\mu_{Mat}=\frac{\sum \limits_{i=0}^{N-1} Mat\{i\}}{N-1}\]

Parámetros
[in]MatLa matriz a calcular.
[out]meanMedia.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Mat==NULL).

◆ pds_matrix_std()

int pds_matrix_std ( const PdsMatrix Mat,
PdsRaReal std 
)

Calcula el desvío padrón de los elementos de la matriz.
std=STD{Mat}.

\[ std=\sigma_{Mat}=\sqrt{\frac{\sum \limits_{i=0}^{N-1} (Mat\{i\}-\mu_{Mat})^2}{N-1}}\]

Parámetros
[in]MatLa matriz a calcular.
[out]stdDesvío padrón.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Mat==NULL).

◆ pds_matrix_std_and_mean()

int pds_matrix_std_and_mean ( const PdsMatrix Mat,
PdsRaReal std,
PdsRaReal mean 
)

Calcula el desvío padrón y la media de los elementos de la matriz.
std=STD{Mat},
mean=MEAN{Mat}.

\[ std=\sigma_{Mat}=\sqrt{\frac{\sum \limits_{i=0}^{N-1} (Mat\{i\}-\mu_{Mat})^2}{N-1}}\]

\[ mean=\mu_{Mat}=\frac{\sum \limits_{i=0}^{N-1} Mat\{i\}}{N-1}\]

Parámetros
[in]MatLa matriz a calcular.
[out]stdDesvío padrón.
[out]meanMedia.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Mat==NULL).

◆ pds_matrix_corr_matrix()

int pds_matrix_corr_matrix ( const PdsMatrix M0,
const PdsMatrix M1,
PdsRaReal pcc 
)

Calcula el coeficiente de correlación de Pearson (PCC) entre dos matrices.
PCC=corr{M0,M1}.

\[ PCC=\frac{E[(M_0-\mu_{M_0})(M_1-\mu_{M_1})]}{\sigma_{M_0}\sigma_{M_1}} \]

Parámetros
[in]M0Una matriz de la correlación.
[in]M1Una matriz de la correlación.
[out]pccCoeficiente de correlación de Pearson.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: M0==NULL). Retorna PDS_WRONG por causa de que M0 y M1 tengan tamaños distintos.

◆ pds_matrix_mean_of_region()

int pds_matrix_mean_of_region ( const PdsMatrix Mat,
PdsRegionRect  Rin,
PdsRaReal mean 
)

Calcula la media de los elementos de la intersecion de la region con la matriz.
mean=MEAN{Mat II Rin}.

\[ mean=\mu_{Mat}=\frac{\sum \limits_{i\in Rin} Mat\{i\}}{N-1}\]

Parámetros
[in]MatLa matriz usar.
[in]RinLa region a calcular.
[out]meanMedia.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Mat==NULL).

◆ pds_matrix_std_of_region()

int pds_matrix_std_of_region ( const PdsMatrix Mat,
PdsRegionRect  Rin,
PdsRaReal std 
)

Calcula el desvío padrón de los elementos de la intersección de la región con la matriz.
std=STD{Mat II Rin}.

\[ std=\sigma_{Mat}=\sqrt{\frac{\sum \limits_{i\in Rin} (Mat\{i\}-\mu_{Mat})^2}{N-1}}\]

Parámetros
[in]MatLa matriz usar.
[in]RinLa región a calcular.
[out]stdDesvío padrón.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Mat==NULL).

◆ pds_matrix_std_and_mean_of_region()

int pds_matrix_std_and_mean_of_region ( const PdsMatrix Mat,
PdsRegionRect  Rin,
PdsRaReal std,
PdsRaReal mean 
)

Calcula el desvío padrón y la media de los elementos de la intersección de la región con la matriz.
std=STD{Mat II Rin},
mean=MEAN{Mat II Rin}.

\[ std=\sigma_{Mat}=\sqrt{\frac{\sum \limits_{i\in Rin} (Mat\{i\}-\mu_{Mat})^2}{N-1}}\]

\[ mean=\mu_{Mat}=\frac{\sum \limits_{i\in Rin} Mat\{i\}}{N-1}\]

Parámetros
[in]MatLa matriz usar.
[in]RinLa región a calcular.
[out]stdDesvío padrón.
[out]meanMedia.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Mat==NULL).

◆ pds_matrix_corr_matrix_of_region()

int pds_matrix_corr_matrix_of_region ( const PdsMatrix M0,
const PdsMatrix M1,
PdsRegionRect  R0,
PdsRegionRect  R1,
PdsRaReal pcc 
)

Calcula el coeficiente de correlación de Pearson (PCC) entre los elementos de la intersección de la regiones con sus matrices.

El tamaño de las regiones son re-dimensionadas al ancho y alto de menor longitud en las regiones; solo se retorna PDS_WRONG cuando el ancho o el alto de las regiones sea cero.

Las regiones rectangulares son definidas como un punto en la esquina superior izquierda mas el alto y ancho.

\[ S_0= M_0 \cap R_0\]

\[ S_1= M_1 \cap R_1\]

\[ WIDTH\{S_0,S_1\} \leftarrow MIN(WIDTH\{S_0\},WIDTH\{S_1\}) \]

\[ HEIGHT\{S_0,S_1\} \leftarrow MIN(HEIGHT\{S_0\},HEIGHT\{S_1\}) \]

\[ PCC=\frac{E[(S_0-\mu_{S_0})(S_1-\mu_{S_1})]}{\sigma_{S_0}\sigma_{S_1}} \]

Si solo un desvío padrón es cero entonces la correlación se considera 0.0. Si ambos desvío padrón son cero entonces la correlación se considera 1.0 si los signos de las medias son iguales y son diferentes de cero, -1.0 si los signos de las medias son diferentes y son diferentes de cero, 0.0 se alguna media es cero y 1.0 se ambas medias son cero.

Parámetros
[in]M0Una matriz de la correlación.
[in]M1Una matriz de la correlación.
[in]R0La región a analizar en la matriz M0.
[in]R1La región a analizar en la matriz M1.
[out]pccCoeficiente de correlación de Pearson.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: M0==NULL, pcc==NULL). Retorna PDS_WRONG cuando algún lado de las regiones finales a analizar son cero.

◆ pds_matrix_swap_rows()

int pds_matrix_swap_rows ( PdsMatrix Matrix,
PdsRaNatural  r1,
PdsRaNatural  r2 
)

Intercambia dos lineas de la matriz Matrix.

Parámetros
[in,out]MatrixLa matriz de en consulta.
[in]r1La linea a intercambiar con r2.
[in]r2La linea a intercambiar con r1.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL). Puede retornar PDS_WRONG por causa de r1>=Nlin, r2>=Nlin o Matrix==NULL. En todos los casos de error Matrix no es alterado.

◆ pds_matrix_row_add_row_factor()

int pds_matrix_row_add_row_factor ( PdsMatrix Matrix,
PdsRaNatural  r1,
PdsRaNatural  r2,
PdsRaReal  factor 
)

Multiplica la linea r2 por un factor y el resulltado lo resta a linea r1.
Matrix{r1}=Matrix{r1}+factor*Matrix{r2}.

\[ Matrix\{r1\}=Matrix\{r1\}+factor~Matrix\{r2\}\]

Parámetros
[in,out]MatrixLa matriz de en consulta.
[in]r1La linea r1.
[in]r2La linea r2.
[in]factorFactor que multiplicará a la linea r2.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL). Puede retornar PDS_WRONG por causa de r1>=Nlin, r2>=Nlin o Matrix==NULL. En todos los casos de error Matrix no es alterado.

◆ pds_matrix_row_mul_factor()

int pds_matrix_row_mul_factor ( PdsMatrix Matrix,
PdsRaNatural  r1,
PdsRaReal  factor 
)

Multiplica la linea r1 por un factor y el resulltado lo carga a linea r1.
Matrix{r1}=Matrix{r1}*factor.

\[ Matrix\{r1\}=factor~Matrix\{r1\}\]

Parámetros
[in,out]MatrixLa matriz de en consulta.
[in]r1La linea r1.
[in]factorFactor que multiplicará a la linea r1.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL). Puede retornar PDS_WRONG por causa de r1>=Nlin o Matrix==NULL. En todos los casos de error Matrix no es alterado.

◆ pds_matrix_row_div_factor()

int pds_matrix_row_div_factor ( PdsMatrix Matrix,
PdsRaNatural  r1,
PdsRaReal  factor 
)

Divide la linea r1 por un factor y el resulltado lo carga a linea r1.
Matrix{r1}=Matrix{r1}/factor.

\[ Matrix\{r1\}=\frac{Matrix\{r1\}}{factor}\]

Parámetros
[in,out]MatrixLa matriz de en consulta.
[in]r1La linea r1.
[in]factorFactor que dividirá a la linea r1.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL). Puede retornar PDS_WRONG por causa de r1>=Nlin o Matrix==NULL. En todos los casos de error Matrix no es alterado.

◆ pds_matrix_printf()

int pds_matrix_printf ( const PdsMatrix Matrix)

Imprime en pantalla una matriz de tipo puntero PdsMatrix.

Parámetros
[in]MatrixLa matriz a imprimir en pantalla.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_fprintf()

int pds_matrix_fprintf ( const PdsMatrix Matrix,
FILE *  fd 
)

Imprime en el archivo que apunta fd una matriz de tipo puntero PdsMatrix.

Parámetros
[in]MatrixLa matriz a imprimir en fd.
[in,out]fdEl puntero al archivo.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no.

◆ pds_matrix_fscanf()

int pds_matrix_fscanf ( PdsMatrix Matrix,
FILE *  fd 
)

Inicializa una matriz con los datos del archivo apuntado por fd. Usa TAB o un salto de linea como delimitador de elemento.

Parámetros
[in]MatrixMatriz en donde se cargaran los datos.
[in]fdApuntador del archivo de donde se cargará los datos iniciales de la matriz.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej. Matrix==NULL o fd==NULL)

◆ pds_matrix_fwrite()

int pds_matrix_fwrite ( PdsMatrix Matrix,
FILE *  fd 
)

Escribe los datos de una matriz en el archivo binario apuntado por fd.

Parámetros
[in]MatrixMatrix de donde se leeran los datos.
[in]fdApuntador del archivo binario de donde se escribiran los datos de la matriz.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej. Matrix==NULL o fd==NULL)

◆ pds_matrix_fread()

int pds_matrix_fread ( PdsMatrix Matrix,
FILE *  fd 
)

Inicializa una matriz con los datos del archivo binario apuntado por fd.

Parámetros
[in]MatrixMatrix en donde se cargaran los datos.
[in]fdApuntador del archivo binario de donde se cargará los datos iniciales de la matriz.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej. Matrix==NULL o fd==NULL)

◆ pds_matrix_save_rgb_bmp()

int pds_matrix_save_rgb_bmp ( const PdsMatrix R,
const PdsMatrix G,
const PdsMatrix B,
const char *  bmpfilename 
)

Escribe los datos de una matriz en un archivo de en formato BMP.

Parámetros
[in]RMatriz donde se leerán los datos de color rojo. 0<= r<= 255
[in]GMatriz donde se leerán los datos de color verde. 0<= g<= 255
[in]BMatriz donde se leerán los datos de color azul. 0<= b<= 255
[in]bmpfilenameNombre del archivo donde se escribirán los datos de la matriz.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej. R,G,B,bmpfilename==NULL)

◆ pds_matrix_save_grayscale_bmp()

int pds_matrix_save_grayscale_bmp ( const PdsMatrix Mat,
const char *  bmpfilename 
)

Escribe los datos de una matriz en un archivo de en formato BMP.

pds_matrix_save_grayscale_bmp.bmp
grafico usando escala de grises
Parámetros
[in]MatMatriz donde se leerán los datos de escala de gris. 0<= r<= 255
[in]bmpfilenameNombre del archivo donde se escribirán los datos de la matriz.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej. Mat,bmpfilename==NULL)

◆ pds_matrix_save_bmp_with_colormap()

int pds_matrix_save_bmp_with_colormap ( const PdsMatrix Mat,
const char *  bmpfilename,
const unsigned char  colormap[256][3] 
)

Escribe los datos de una matriz en un archivo de en formato BMP.

pds_matrix_save_bmp_with_colormap_jet.bmp
grafico usando el colormap PDS_COLORMAP_JET.
Parámetros
[in]MatMatriz donde se leerán los datos de escala de gris. 0<= r<= 255
[in]bmpfilenameNombre del archivo donde se escribirán los datos
[in]colormapMapa de colores. Ejemplo: PDS_COLORMAP_JET, PDS_COLORMAP_BONE, PDS_COLORMAP_HOT,PDS_COLORMAP_JOLLY.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no. (ej. Mat,bmpfilename==NULL)

◆ pds_matrix_octave_surf()

pds_matrix_octave_surf ( const PdsMatrix M,
const char *  labelx,
const char *  labely,
const char *  labelz,
const char *  octfile,
const char *  imgfile 
)

Imprime una matriz M en un archivo de imagen usando como intermedio un archivo *.m de octave. Usando el comando surf.

pds_matrix_octave_surf.png
Usando la función surf() de Octave.
Parámetros
[in]MMatriz a imprimir.
[in]labelxEtiqueta del eje X: Columnas.
[in]labelyEtiqueta del eje Y: Lineas.
[in]labelzEtiqueta del eje Z: Altura.
[in]octfileNombre del archivo *.m de octave que se usará de intermediario. Si octfile==NULL entonces se creará un fichero con nombre aleatorio y se borrará al terminar de crear el archivo de imagen.
[in]imgfileNombre del archivo de imagen generado. El tipo de archivo es seleccionado por la extensión del nombre imgfile.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no, ejemplo punteros igual a NULL.

◆ pds_matrix_get_value()

int pds_matrix_get_value ( const PdsMatrix Matrix,
PdsRaNatural  x,
PdsRaNatural  y,
PdsRaReal m 
)

Devuelve el valor en la posición (x,y) de la matriz Matrix. (x,y) inicia con (0,0).

Parámetros
[in]MatrixLa matriz de en consulta.
[in]xLinea de posición x, el primer valor es cero.
[in]yColumna de posición y, el primer valor es cero.
[out]mEl valor en la posición (x,y), en caso de error por fuera de rango (x,y) entonces carga 0, en caso de error de matriz nula carga cero.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL).

◆ pds_matrix_get_nlines()

int pds_matrix_get_nlines ( const PdsMatrix Matrix,
PdsRaNatural Nlines 
)

Devuelve el número de lineas de la matriz Matrix.

Parámetros
[in]MatrixLa matriz de en consulta.
[out]NlinesEn donde se guardará el número de lineas de la matriz Matrix.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL).

◆ pds_matrix_get_ncolumns()

int pds_matrix_get_ncolumns ( const PdsMatrix Matrix,
PdsRaNatural Ncolumns 
)

Devuelve el número de columnas de la matriz Matrix.

Parámetros
[in]MatrixLa matriz de en consulta.
[out]NcolumnsEn donde se guardará el número de columnas de la matriz Matrix.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL).

◆ pds_matrix_get_region_rect()

int pds_matrix_get_region_rect ( const PdsMatrix Mat,
PdsRegionRect R 
)

Carga la variable PdsRegionRect desde la posicion (0,0), con ancho y alto (Mat->Nlin,Mat->Ncol).

Parámetros
[in]Matmatriz de donde se generará la region.
[in]RLa region que representa la matriz Mat.
Devuelve
PDS_WRONG Si Mat==NULL o R==NULL, sino retorna PDS_OK.

◆ pds_matrix_get_min_value()

int pds_matrix_get_min_value ( const PdsMatrix Matrix,
PdsRaReal m 
)

Devuelve el valor mínimo de los elementos de la matriz Matrix.

Parámetros
[in]MatrixLa matriz de en consulta.
[out]mEl valor mínimo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_WRONG.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL).

◆ pds_matrix_get_min_value_and_pos()

int pds_matrix_get_min_value_and_pos ( const PdsMatrix Matrix,
PdsRaReal m,
PdsRaNatural lin,
PdsRaNatural col 
)

Devuelve el valor mínimo de los elementos de la matriz Matrix.

Parámetros
[in]MatrixLa matriz de en consulta.
[out]mEl valor mínimo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_WRONG.
[out]linLa linea del valor mínimo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_OK.
[out]colLa columna del valor mínimo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_OK.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL o m==NULL).

◆ pds_matrix_get_max_value()

int pds_matrix_get_max_value ( const PdsMatrix Matrix,
PdsRaReal m 
)

Devuelve el valor máximo de los elementos de la matriz Matrix.

Parámetros
[in]MatrixLa matriz de en consulta.
[out]mEl valor máximo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_WRONG.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL).

◆ pds_matrix_get_max_value_and_pos()

int pds_matrix_get_max_value_and_pos ( const PdsMatrix Matrix,
PdsRaReal m,
PdsRaNatural lin,
PdsRaNatural col 
)

Devuelve el valor máximo de los elementos de la matriz Matrix.

Parámetros
[in]MatrixLa matriz de en consulta.
[out]mEl valor máximo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_WRONG.
[out]linLa linea del valor máximo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_OK.
[out]colLa columna del valor máximo de los elementos de la matriz Matrix. Si este parámetro es NULL la función retorna PDS_OK.
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL o m==NULL).

◆ pds_matrix_set_value()

int pds_matrix_set_value ( PdsMatrix Matrix,
PdsRaNatural  x,
PdsRaNatural  y,
PdsRaReal  m 
)

Escribe el valor en la posición (x,y) de la matriz Matrix. En caso de que (x,y) estuvieran fuera de rango, no se considera como error simplemente no se escribe nada. (x,y) inicia con (0,0).

Parámetros
[in,out]MatrixLa matriz a modificar.
[in]xLinea de posición x, el primer valor es cero.
[in]yColumna de posición y, el primer valor es cero.
[in]mValor real que se colocara en (x,y).
Devuelve
PDS_OK si todo fue bien o PDS_WRONG si no (ej: Matrix==NULL).

◆ pds_matrix_is_equal()

int pds_matrix_is_equal ( PdsMatrix M1,
PdsMatrix M2 
)

Compara dos matrices.

Parámetros
[in]M1La matriz a comparar com M2.
[in]M2La matriz a comparar com M1.
Devuelve
Retorna PDS_OK si las matrices son iguales, caso contrario retorna PDS_WRONG.

◆ pds_matrix_is_quasiequal()

int pds_matrix_is_quasiequal ( PdsMatrix M1,
PdsMatrix M2,
double  u 
)

Compara dos matrices, y verifica si la diferencia absoluta de cada elemento es menor que un umbral u.

Parámetros
[in]M1La matriz a comparar com M2.
[in]M2La matriz a comparar com M1.
[in]uEs el umbrarl a testar.
Devuelve
Retorna PDS_OK si las matrices son quasi iguales (diferencia de elementos menoro igual a u), caso contrario retorna PDS_WRONG.

◆ pds_matrix_is_diagonal()

int pds_matrix_is_diagonal ( PdsMatrix M1)

Verifica si una matriz es diagonal.

Una matriz es diagonal cuando sus elementos exteriores a la diagonal principal son nulos. Una matriz nula (llena de ceros) tambien es diagonal.

Parámetros
[in]M1La matriz a verificar su diagonalidad.
Devuelve
Retorna PDS_OK si las matriz es diagonal, caso contrario retorna PDS_WRONG. Tambien retorna PDS_WRONG si la matriz no es cuadrada.

◆ pds_matrix_is_quasidiagonal()

int pds_matrix_is_quasidiagonal ( PdsMatrix M1,
double  u 
)

Verifica si una matriz es casi diagonal. Usa un umbral u, qualquier valor menor o igual que u es considerado cero.

Una matriz es diagonal cuando sus elementos exteriores a la diagonal principal son nulos. Una matriz nula (llena de ceros) tambien es diagonal.

Parámetros
[in]M1La matriz a verificar su diagonalidad.
[in]uEs el umbral bajo el cual todo lo demas se considera cero.
Devuelve
Retorna PDS_OK si las matriz es diagonal, caso contrario retorna PDS_WRONG. Tambien retorna PDS_WRONG si la matriz no es cuadrada.

◆ pds_matrix_is_symetric()

int pds_matrix_is_symetric ( PdsMatrix M1)

Verifica si una matriz es simétrica.

Una matriz es simétrica si coincide con su transpuesta.

Parámetros
[in]M1La matriz a verificar su simetria.
Devuelve
Retorna PDS_OK si las matriz es simetrica, caso contrario retorna PDS_WRONG. Tambien retorna PDS_WRONG si la matriz no es cuadrada.

◆ pds_matrix_is_antisymetric()

int pds_matrix_is_antisymetric ( PdsMatrix M1)

Verifica si una matriz es anti simétrica.

Una matriz es anti simétrica cuando el opuesto de esta coincide con su transpuesta. De esto se deduce que los elementos de la diagonal son nulos.
M1^t=-M1.

Parámetros
[in]M1La matriz a verificar su anti simetria.
Devuelve
Retorna PDS_OK si las matriz es anti simetrica, caso contrario retorna PDS_WRONG. Tambien retorna PDS_WRONG si la matriz no es cuadrada.

◆ pds_matrix_free()

void pds_matrix_free ( PdsMatrix Matrix)

Libera una matriz de tipo puntero PdsMatrix.

Parámetros
[in,out]MatrixLa matriz a liberar.
Devuelve
No retorna valor.

◆ pds_matrix_destroy()

void pds_matrix_destroy ( PdsMatrix **  Matrix)

Libera una matriz de tipo puntero PdsMatrix, y limpia el puntero con NULL.

Parámetros
[in,out]MatrixLa matriz a liberar y limpiar.
Devuelve
No retorna valor.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed