Home | Develop | Download | Contact
example_matrixfunc.cpp
1
221#include <Pds/Ra>
222
223int main(void)
224{
225 Pds::Matrix A = Pds::Eye(3);
226 A.Print("\nA:\n");
227
228 Pds::Matrix B = Pds::Ones(3);
229 B.Print("\nB:\n");
230
231 Pds::Matrix C = Pds::Zeros(3);
232 C.Print("\nC:\n");
233
234 Pds::Matrix D = Pds::RandU(3);
235 D.Print("\nD:\n");
236
237 Pds::Matrix E = Pds::RandN(3);
238 E.Print("\nE:\n");
239
240 Pds::Matrix F = Pds::MatrixId(2,3);
241 F.Print("\nF:\n");
242
243 Pds::Matrix G = Pds::Diag(F);
244 G.Print("\nG:\n");
245
246 Pds::Matrix H = Pds::MergeHor({A,B,C});
247 H.Print("\nH=[A,B,C]:\n");
248
249 Pds::Matrix I = Pds::MergeVer({A,B,C});
250 I.Print("\nI=[A;B;C]:\n");
251
252 I.MakeEmpty();
253 std::list<Pds::Matrix> List={A,B,C};
254 I.FusionVer(List);
255 I.Print("\nI.FusionVer(List):\n");
256 std::cout<<"List.size(): "<<List.size()<<"\n";
257 for (auto pmat = List.begin(); pmat != List.end(); pmat++)
258 pmat->Print("\nList{0}:\n");
259
260
261 std::cout<<"\n((3,3)): "<<Pds::NmultichooseK(3,3)<<std::endl;
263 J.Print("J=MultisetIndexSum(3,3):\n");
264
265 std::cout<<"\n((3,2)): "<<Pds::NmultichooseK(3,2)<<std::endl;
267 K.Print("K=MultisetIndexSum(3,2):\n");
268
269 std::cout<<"\n((3,1)): "<<Pds::NmultichooseK(3,1)<<std::endl;
271 L.Print("L=MultisetIndexSum(3,1):\n");
272
273 Pds::Matrix ID;
274 F.Print("\nF:\n");
275 Pds::Matrix M=Pds::Monomials(F,2,ID);
276 M.Print("\nM=Pds::Monomials(F,2,ID):\n");
277 ID.T().Print("\nID.T():\n");
278
280 O.Print("\nO:\n");
281 ID.T().Print("\nID.T():\n");
282
283 ID=Pds::SetIndexSum(4,2);
284 ID.Print();
285 std::cout<<Pds::MultisetIndexSumToString(ID,", ")<<std::endl;
286
287 A.Print("\nA:\n");
288 std::cout<<"Pds::Find(A): "<<Pds::Ra::IndicesToString(Pds::Find(A),", ")<<std::endl;
289
290 Pds::CountingTable(2,3).Print("\nPds::CountingTable(2,3):\n");
291
292 Pds::CountingTable(3,-1,1,14).Print("\nPds::CountingTable(3,-1,1,14):\n");
293
294 Pds::Matrix X;
295 Pds::Matrix Y;
296 Pds::Meshgrid(Pds::LinSpace(-3,3,7),Pds::LinSpace(-2,2,5),X,Y);
297 X.Print("\nX:\n");
298 Y.Print("\nY:\n");
299
300 X.FindRows(Pds::Vector("1 0 1 1 0 0 1")).Print("\nX.FindRows(Pds::Vector(\"1 0 1 1 0 0 1\")):\n");
301 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");
302
303 X=Pds::Ones(3,3);
304 Y=Pds::Eye(3);
305 Pds::Matrix Z=Pds::RandC(3,3);
306 auto func=[](double x,double y,double z)->double{return x+y+z;};
307 H=Pds::Operate(func,X,Y,Z);
308 H.Print("H:\n");
309
310 A=Pds::Diag(Pds::Vector({1,2,3}));
311 A.Print("A:\n");
312
313 A.Inv().Print("A.Inv():\n");
314 return 0;
315}
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