-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhistogramador01.cpp
executable file
·81 lines (56 loc) · 1.7 KB
/
histogramador01.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//Programa que histograma un vector
// Ahora tambien con la nueva idea de guardar el maximo
// y la dispersion estandar.
#include <armadillo>
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace arma;
using namespace std;
int main(){
//Leemos el vector a histogramar
colvec VectorEntrada;
VectorEntrada.load("histogramable.dat", raw_ascii);
double maximo, minimo;
ofstream statistics;
statistics.open("estadistica.dat");
const int cajas=99;
mat HistogramaMatricial=zeros<mat>(cajas,2);
int indice;
int histograma[cajas]={0};
int norma;
maximo=max(VectorEntrada);
minimo=min(VectorEntrada);
norma=VectorEntrada.n_rows;
for(int j=0 ; j<norma ; j++){
indice=floor(cajas*(VectorEntrada(j)-minimo)/(maximo-minimo));
histograma[indice]++;
};
//llenamos la matriz de las estadisticas
double media, dispersion, masprobable=0.0;
int probmax=0;
for(int j=0; j<cajas;j++){
double centro;
centro=minimo+j*(maximo-minimo)/(double)cajas;
HistogramaMatricial(j,0)=centro;
HistogramaMatricial(j,1)=histograma[j];
if(probmax<histograma[j])
{probmax=histograma[j];
masprobable=centro;
};
cout<<centro<<"\t"<<histograma[j]/norma<<endl;
};
//calculamos los valores interesantes.
statistics<<"Y ahora va la estadistica " <<endl;
media=mean(VectorEntrada);
dispersion=stddev(VectorEntrada);
//Los guardamos bonito
statistics<<"Media"<<"\t"<<media<<endl;
statistics<<"Dispersion"<<"\t"<<dispersion<<endl;
statistics<<"Mayor"<<"\t"<<masprobable<<endl;
statistics<<"Altura"<<"\t"<<probmax<<endl;
statistics<<minimo<<endl;
statistics<<maximo<<endl;
statistics.close();
return 0;
}