Home | Develop | Download | Contact
example_matrixfunc.cpp

Programa para el testeo de las funciones.

Programa para el testeo de las funciones.Para compilar o código example_matrixfunc.cpp:

g++ -static -o example_matrixfunc example_matrixfunc.cpp -lpdsramm

Para executar o programa:

./example_matrixfunc

Retornando por consola:

A:
1 0 0 
0 1 0 
0 0 1 

B:
1 1 1 
1 1 1 
1 1 1 

C:
0 0 0 
0 0 0 
0 0 0 

D:
0.84018771676347 0.39438292663544 0.78309922339395 
0.79844003310427 0.91164735751227 0.19755136920139 
0.33522275555879 0.76822959445417 0.27777471067384 

E:
-1.0743635946361  -0.65705834043996 -2.4575761653009  
1.22862653077     -0.11275232814368 -0.14186971563947 
0.024275794651666 0.19490931901932  -0.42842407852154 

F:
0 2 4 
1 3 5 

G:
0 0 0 0 0 0 
0 1 0 0 0 0 
0 0 2 0 0 0 
0 0 0 3 0 0 
0 0 0 0 4 0 
0 0 0 0 0 5 

H=[A,B,C]:
1 0 0 1 1 1 0 0 0 
0 1 0 1 1 1 0 0 0 
0 0 1 1 1 1 0 0 0 

I=[A;B;C]:
1 0 0 
0 1 0 
0 0 1 
1 1 1 
1 1 1 
1 1 1 
0 0 0 
0 0 0 
0 0 0 

I.FusionVer(List):
1 0 0 
0 1 0 
0 0 1 
1 1 1 
1 1 1 
1 1 1 
0 0 0 
0 0 0 
0 0 0 
List.size(): 3

List{0}:

List{0}:

List{0}:

((3,3)): 10
J=MultisetIndexSum(3,3):
3 0 0 
2 1 0 
1 2 0 
0 3 0 
2 0 1 
1 1 1 
0 2 1 
1 0 2 
0 1 2 
0 0 3 

((3,2)): 6
K=MultisetIndexSum(3,2):
2 0 0 
1 1 0 
0 2 0 
1 0 1 
0 1 1 
0 0 2 

((3,1)): 3
L=MultisetIndexSum(3,1):
1 0 0 
0 1 0 
0 0 1 

F:
0 2 4 
1 3 5 

M=Pds::Monomials(F,2,ID):
0  0  4  0  8  16 
1  3  9  5  15 25 

ID.T():
2 1 0 1 0 0 
0 1 2 0 1 0 
0 0 0 1 1 2 

O:
1  0  2  4  0  0  4  0  8  16 
1  1  3  5  1  3  9  5  15 25 

ID.T():
0 1 0 0 2 1 0 1 0 0 
0 0 1 0 0 1 2 0 1 0 
0 0 0 1 0 0 0 1 1 2 
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}

A:
1 0 0 
0 1 0 
0 0 1 
Pds::Find(A): 0, 4, 8

Pds::CountingTable(2,3):
0 0 
1 0 
2 0 
0 1 
1 1 
2 1 
0 2 
1 2 
2 2 

Pds::CountingTable(3,-1,1,14):
1  0  0  
-1 1  0  
0  1  0  
1  1  0  
-1 -1 1  
0  -1 1  
1  -1 1  
-1 0  1  
0  0  1  
1  0  1  
-1 1  1  
0  1  1  
1  1  1  

X:
-3 -3 -3 -3 -3 
-2 -2 -2 -2 -2 
-1 -1 -1 -1 -1 
0  0  0  0  0  
1  1  1  1  1  
2  2  2  2  2  
3  3  3  3  3  

Y:
-2 -1 0  1  2  
-2 -1 0  1  2  
-2 -1 0  1  2  
-2 -1 0  1  2  
-2 -1 0  1  2  
-2 -1 0  1  2  
-2 -1 0  1  2  

X.FindRows(Pds::Vector("1 0 1 1 0 0 1")):
-3 -3 -3 -3 -3 
-1 -1 -1 -1 -1 
0  0  0  0  0  
3  3  3  3  3  

X.FindRows(Pds::Vector("1 0 1 1 0 0 1"),0.5):
-3 -3 -3 -3 -3 
-1 -1 -1 -1 -1 
0  0  0  0  0  
3  3  3  3  3  
H:
3 2 2 
2 3 2 
2 2 3 
A:
1 0 0 
0 2 0 
0 0 3 
A.Inv():
1                0                0                
0                0.5              0                
0                0                0.33333333333333 

Código example_matrixfunc.cpp:

#include <Pds/Ra>
int main(void)
{
A.Print("\nA:\n");
B.Print("\nB:\n");
C.Print("\nC:\n");
D.Print("\nD:\n");
E.Print("\nE:\n");
F.Print("\nF:\n");
G.Print("\nG:\n");
Pds::Matrix H = Pds::MergeHor({A,B,C});
H.Print("\nH=[A,B,C]:\n");
Pds::Matrix I = Pds::MergeVer({A,B,C});
I.Print("\nI=[A;B;C]:\n");
I.MakeEmpty();
std::list<Pds::Matrix> List={A,B,C};
I.FusionVer(List);
I.Print("\nI.FusionVer(List):\n");
std::cout<<"List.size(): "<<List.size()<<"\n";
for (auto pmat = List.begin(); pmat != List.end(); pmat++)
pmat->Print("\nList{0}:\n");
std::cout<<"\n((3,3)): "<<Pds::NmultichooseK(3,3)<<std::endl;
J.Print("J=MultisetIndexSum(3,3):\n");
std::cout<<"\n((3,2)): "<<Pds::NmultichooseK(3,2)<<std::endl;
K.Print("K=MultisetIndexSum(3,2):\n");
std::cout<<"\n((3,1)): "<<Pds::NmultichooseK(3,1)<<std::endl;
L.Print("L=MultisetIndexSum(3,1):\n");
F.Print("\nF:\n");
M.Print("\nM=Pds::Monomials(F,2,ID):\n");
ID.T().Print("\nID.T():\n");
O.Print("\nO:\n");
ID.T().Print("\nID.T():\n");
ID.Print();
std::cout<<Pds::MultisetIndexSumToString(ID,", ")<<std::endl;
A.Print("\nA:\n");
std::cout<<"Pds::Find(A): "<<Pds::Ra::IndicesToString(Pds::Find(A),", ")<<std::endl;
Pds::CountingTable(2,3).Print("\nPds::CountingTable(2,3):\n");
Pds::CountingTable(3,-1,1,14).Print("\nPds::CountingTable(3,-1,1,14):\n");
X.Print("\nX:\n");
Y.Print("\nY:\n");
X.FindRows(Pds::Vector("1 0 1 1 0 0 1")).Print("\nX.FindRows(Pds::Vector(\"1 0 1 1 0 0 1\")):\n");
X.FindRows(Pds::Vector("1 0 1 1 0 0 1"),0.5).Print("\nX.FindRows(Pds::Vector(\"1 0 1 1 0 0 1\"),0.5):\n");
X=Pds::Ones(3,3);
Y=Pds::Eye(3);
auto func=[](double x,double y,double z)->double{return x+y+z;};
H=Pds::Operate(func,X,Y,Z);
H.Print("H:\n");
A=Pds::Diag(Pds::Vector({1,2,3}));
A.Print("A:\n");
A.Inv().Print("A.Inv():\n");
return 0;
}
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
La clase tipo Pds::Vector . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: Vector.hpp:80
Pds::Matrix 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....
Pds::Matrix Zeros(const Pds::Size &S)
Retorna una matriz con ceros.
Pds::Matrix 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 Diag(Matrix A)
Retorna una matriz diagonal usando los dats de tra matriz, se lee primero todos los elementos de una ...
Pds::Matrix MatrixId(unsigned int N)
Crea una matriz con datos correspondentes ao Id de cada elemento.
Pds::Matrix RegressorMatrix(const std::initializer_list< Pds::Matrix > list)
Retorna una Regressor Matrix , creado concatenando verticalmente las matrices en una lista ....
bool Meshgrid(const Pds::Vector &SpaceX, const Pds::Vector &SpaceY, Pds::Matrix &X, Pds::Matrix &Y)
Crea una matriz e una , a partir de los datos en y , respectivamente.
Pds::Matrix Operate(double(*func)(double x, double y), const Pds::Matrix &X, const Pds::Matrix &Y)
Crea una matriz aplicando la función , elemento a elemento sobre las matrices y .
Pds::Matrix MergeVer(const std::initializer_list< Pds::Matrix > list)
Retorna una matriz concatenando verticalmente otras. Si las matrices no tienen el mismo número de c...
Pds::Matrix SetIndexSum(unsigned int N, unsigned int M)
Retorna una matriz de columnas y lineas. La lineas de tienen todas las combinaciones de numeros ...
Pds::Matrix Monomials(const Pds::Matrix &X, unsigned int M, Pds::Matrix &ID)
Dada uma matriz , compuesta por la concatenacion de vectores columna . La función retorna una matriz...
Pds::Matrix MergeHor(const std::initializer_list< Pds::Matrix > list)
Retorna una matriz concatenando horizontalmente otras. Si las matrices no tienen el mismo número de...
Pds::Matrix CountingTable(unsigned int N, unsigned int M)
Retorna una matriz de columnas y lineas. La lineas de representan un conteo con numeros enteros ...
Pds::Matrix Eye(unsigned int N)
Retorna una matriz con unos en la diagonal y el resto ceros.
Pds::Matrix Ones(const Pds::Size &S)
Retorna una matriz con unos.
std::vector< unsigned int > Find(const Pds::Matrix &A)
Retorna una lista de indices donde existe un 1 en la matriz A.
std::string MultisetIndexSumToString(const Pds::Matrix &ID, std::string Separator=", ", unsigned int n=1)
Retorna una cadena que representa una matriz de indices con lineas y columnas. Los indices estan ...
Pds::Matrix MultisetIndexSum(unsigned int N, unsigned int M)
Retorna una matriz de columnas y lineas. La lineas de tienen todas las combinaciones de numeros ...
Pds::Matrix RandU(unsigned int N)
Crea una matriz con datos aleatórios uniformemente distribuidos entre 0.0 y 1.0.
Vector LinSpace(double start, double end, unsigned int N)
Retorna un vector con elementos desde start hasta end con N elementos.
unsigned int NmultichooseK(unsigned int n, unsigned int k)
Retorna el combinatorio (n,k)
void MakeEmpty(void)
libera los datos internos de la matriz y la convierte en una matriz nula. es decir con lineas y colum...
Pds::Matrix T(void) const
Transpuesta de si mismo (A), el resultado es cargado en B.
Pds::Matrix FindRows(const Pds::Vector &B, double b=0.5) const
Retorna una nueva matriz con las lineas donde existe un 1 en la matriz B. En verdad B es binarizado i...
bool FusionVer(std::list< Pds::Matrix > &list)
Concatena verticalmente varias matrices. Si las matrices no tienen el mismo número de columnas se c...
void Print(const std::string &str, unsigned int precision) const
Imprime en pantalla el contenido de la matriz después del texto indicado en str.
Pds::Matrix Inv(double *rcond=NULL) const
Retorna la matriz inversa.
std::string IndicesToString(std::list< unsigned int > IDs, std::string separator="")
Convierte una lista de indices a un std::string.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed