%% Limpar dados existentes
clc;
clear all;
close all;

% Iniciar ficheiro

file = importdata('/home/carpinteiro/workingcopies/lar4/src/sensors/optoelectric/data/Calibração dos 4 sensores!!!/LeituraA3.txt');

% Passar tensão
file(:,2)=file(:,2)*5/1023;

% Variáveis vazias

Pontos=[];
Desv=[];
PntMeDesv=[];
PntMaDesv=[];
Media=[];
Moda=[];
Mediana=[];
MediaGeo=[];
Hist=[];
Dist=[]; % valores de x e y trocados para obter distância em função da tensão!!!

% Calcular Estatisticas

for n=1:size(file,1)/500;
    
   Pontos=[Pontos ; (10+(n-1))*ones(500,1) , file(1+(500*(n-1)):500+(500*(n-1)),2)]; 
   Media=[Media mean(file(1+(500*(n-1)):500+(500*(n-1)),2))];
   Mediana=[Mediana median(file(1+(500*(n-1)):500+(500*(n-1)),2))];
   MediaGeo=[MediaGeo geomean(file(1+(500*(n-1)):500+(500*(n-1)),2))];
   Moda=[Moda mode(file(1+(500*(n-1)):500+(500*(n-1)),2))];
   Desv=[Desv (sqrt(sum((file(1+(500*(n-1)):500+(500*(n-1)),2)).^2)/500 - mean(file(1+(500*(n-1)):500+(500*(n-1)),2)).^2))];
   PntMeDesv=[PntMeDesv Media(n)-Desv(n)];
   PntMaDesv=[PntMaDesv Media(n)+Desv(n)];
   Hist=[Hist;file(1+(500*(n-1)):500+(500*(n-1)),2)'];
   Dist=[Dist 10+(n-1)];

end

% Valores obtidos

figure('position',[100 50 600 600],'color',[1 1 1])
plot(Pontos(:,1),Pontos(:,2),'.r');
hold on
plot(Dist,Media,'.b','LineWidth',2)
plot(Dist,PntMeDesv,'.k','LineWidth',2)
plot(Dist,PntMaDesv,'.k','LineWidth',2)
grid on
axis ([9.5,80.5,0,4])
xlabel('Distancia (cm)');
ylabel('Voltagem (V)');
title('Valores Lidos de 1 em 1 cm com FANUC');
export_fig Pontos.pdf -pdf

% Usar segunda exponencial com a mediana
    figure('position',[100 50 600 600],'color',[1 1 1])
    hold on
    fitType = 'exp2';
    myFit = fit(Mediana',Dist',fitType);
    yfit=myFit.a*exp(myFit.b*Mediana)+myFit.c*exp(myFit.d*Mediana); %# evaluate the curve fit over x
    plot(Mediana,Dist,'*m')
    %plot(Mediana,yfit,'-g')
    xx=linspace(0.3,2.9,16000);
    yy=myFit.a*exp(myFit.b*xx)+myFit.c*exp(myFit.d*xx);

    plot(xx,yy);
    
    grid on
   % axis square
    ylabel('Distancia (cm)');
    xlabel('Voltagem (V)');
    title('Exponencial 2 para Mediana para medidas de 1 em 1 cm com FANUC');
    a=myFit.a;b=myFit.b;c=myFit.c;d=myFit.d;
    legend('Mediana para as 500 leituras em cada cm',sprintf('Expressao: %3.2dxExp(%3.2dxVolt) + %3.2dxExp(%3.2dxVolt)',a,b,c,d));
    export_fig('Exp_Med_Usada.pdf','-pdf')
    
    