Home | Develop | Download | Contact
test_matrix_static_array.cpp
1
9#include <iostream>
10#include <fstream>
11#include <Pds/Ra>
12#include <cmath>
13
14int main(void)
15{
16 std::string str;
18
19 unsigned int Nlin=2;
20 unsigned int Ncol=2;
21 double **array=NULL;
22
23 char filepath[]="filedat.txt";
24
25
26
27 array=Pds::Array<double>::ArrayAllocate(Nlin,Ncol);
28 if(array==NULL) return 0;
29
30 array[0][0]=0.0/0.0; array[0][1]=0.0/1.0;
31 array[1][0]=1.0/0.0; array[1][1]=1.0/1.0;
32 std::cout<<"\n";
33
34
35 Pds::Array<double>::ArraySave(filepath,array,Nlin,Ncol);
36
37 std::cout <<"ArrayAllocate(Nlin,Ncol):\n"
38 <<Pds::Array<double>::ArrayToString(array,Nlin,Ncol);
39
41 if(array==NULL) std::cout<<"Array released.\n\n\n";
42
43 A.Print("A:\n");
44
46 if(array==NULL) {std::cout<<"Error Alocate.\n";return 0;}
47 else std::cout<<"New array allocated.\n";
48
49 std::cout <<"ArrayAllocate(A):\n"
51
53 if(array==NULL) std::cout<<"Array released.\n\n\n";
54
55
56
57 array=Pds::Matrix::ArrayAllocate(sin,A);
58 if(array==NULL) {std::cout<<"Error Alocate.\n";return 0;}
59 else std::cout<<"New array allocated.\n";
60
61 std::cout <<"ArrayAllocate(sin,A):\n"
63
65 if(array==NULL) std::cout<<"Array released.\n\n\n";
66
67
68
69 array=Pds::Array<double>::ArrayLoad(filepath,Nlin,Ncol);
70 if(array==NULL) {std::cout<<"Error Alocate.\n";return 0;}
71 else std::cout<<"New array allocated.\n";
72
73 std::cout <<"ArrayLoad(filepath,Nlin,Ncol):\n"
74 <<Pds::Array<double>::ArrayToString(array,Nlin,Ncol);
75
77 if(array==NULL) std::cout<<"Array released.\n\n\n";
78
79
80
81 array=Pds::Array<double>::ArrayFromString("1 2 3\n4 5 6\n",Nlin,Ncol);
82 if(array==NULL) {std::cout<<"Error Alocate.\n";return 0;}
83 else std::cout<<"New array allocated.\n";
84
85 std::cout <<"ArrayFromString(\"1 2 3\\n4 5 6\\n\",Nlin,Ncol):\n"
86 <<Pds::Array<double>::ArrayToString(array,Nlin,Ncol);
87
89 if(array==NULL) std::cout<<"Array released.\n\n\n";
90
91 array=Pds::Array<double>::ArrayColFromString("1 2 3\n4 5 6\n",Nlin,Ncol);
92 if(array==NULL) {std::cout<<"Error Alocate.\n";return 0;}
93 else std::cout<<"New array allocated.\n";
94
95 std::cout <<"ArrayColFromString(\"1 2 3\\n4 5 6\\n\",Nlin,Ncol):\n"
96 <<Pds::Array<double>::ArrayToString(array,Nlin,Ncol);
97
98 std::cout<<"\n";
99
100 unsigned int Nel;
101 Pds::Ra::ElementsInFile(filepath,Nel);
102 std::cout<<"Nel: "<<Nel<<"\n\n";
103
104 std::ifstream ifs;
105 ifs.open (filepath);
106
107 if(ifs.is_open())
108 while(ifs.good())
109 {
110 Nlin=Ncol=0;
111
113 if(array!=NULL)
114 std::cout<<"["<<Ncol<<"]:"<<Pds::Array<double>::ArrayToString(array,Nlin,Ncol);
115
117 }
118 ifs.close();
119
120 return 0;
121}
La clase tipo Pds::Matrix . Esta clase genera una matriz de Nlin lineas y Ncol columnas....
Definition: Matrix.hpp:96
static Datum ** ArrayFromString(const std::string &str, unsigned int &Nlin, unsigned int &Ncol)
Convierte un sdt::string con arreglo de Nlin lineas y Ncol columnas a un arreglo.
static Datum ** ArrayAllocate(const Pds::Matrix &A)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de una m...
static Datum ** ArrayLoad(const std::string &filepath, unsigned int &Nlin, unsigned int &Ncol)
Lee de un archivo un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
static void ArrayRelease(Datum **&array, unsigned int Nlin)
Libera un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos) Adicionalmente carga con NULL ...
static std::string ArrayToString(Datum **array, unsigned int Nlin, unsigned int Ncol)
Convierte a un sdt::string un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
static bool ArraySave(const std::string &filepath, Datum **array, unsigned int Nlin, unsigned int Ncol)
Salva en un archivo un arreglo de Nlin lineas y Ncol columnas (arreglo de arreglos).
static Datum ** ArrayLoadLineFromStream(std::ifstream &ifs, unsigned int &Nlin, unsigned int &Ncol)
Lee un arreglo de Nlin=1 lineas y Ncol columnas desde una linea de um archivo. Se entiende que una li...
static Datum ** ArrayColFromString(const std::string &str, unsigned int &Nlin, unsigned int &Ncol)
Convierte un sdt::string con arreglo de Nlin lineas y 1 columna a un arreglo.
Pds::Matrix Eye(unsigned int N)
Retorna una matriz con unos en la diagonal y el resto ceros.
unsigned int Ncol(void) const
Retorna el número de columnas de la matriz.
static double ** ArrayAllocate(double(*func)(double), const Pds::Matrix &A)
crea dinámicamente un arreglo de A.Nlin() lineas y A.Ncol() columnas, con los datos copiados de aplic...
unsigned int Nlin(void) const
Retorna el número de lineas de la matriz.
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.
bool ElementsInFile(const std::string &filepath, unsigned int &Nel)
Retorna el número de elementos de un archivo. Se asume que es un archivo de texto.

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed