%Procura o ponto mais proximo ja sabendo qual o arquivo ou segmente

NomeDoArquivo = 'c://temp//a2.sig';
NomeDoArquivop = 'c://temp//a2.pos';

PontoMedido = Resp;

%Numero de SVD usados
kSV = 49
NPoint = size(PontoMedido,2);

NumeroDeIteracaoNoArq = 15;%1436;

%Abri o arquivo
fid  = fopen(NomeDoArquivo,'rt');
fidp  = fopen(NomeDoArquivop,'rt');

%Shaper para o sinal onde ocorreu a interacao
SizeDelay = 25;
PontoMedidoModificado = zeros(1,NPoint);
PontoMedidoModificado(1:SizeDelay) = PontoMedido(8,1:SizeDelay);
PontoMedidoModificado(SizeDelay+1:NPoint) = PontoMedido(8,SizeDelay+1:NPoint)-PontoMedido(8,1:NPoint-SizeDelay);

for Iteracao=1:NumeroDeIteracaoNoArq
	count = 18*50;

	[a count] = fscanf(fid,'%f\n', count);
%	[b connt2] = fscanf(fidp, '%f %f %f', 3);
	%organizo o Dado
	for k=0:(count/50)-1
		Dado(k+1,:) = a(1+(k*50):50+(k*50))';
	end

	%Shaper para o sinal onde ocorreu a interacao	
	DadoModificado = zeros(1,NPoint);
	DadoModificado(1:SizeDelay) = Dado(8,1:SizeDelay);
	DadoModificado(SizeDelay+1:NPoint) = Dado(8,SizeDelay+1:NPoint)-Dado(8,1:NPoint-SizeDelay);


	%Comparar o Dado com a medida
	erroRMS(1) = sqrt(sum(((PontoMedido(1,:))-(Dado(1,:))).^2)/kSV);
	erroRMS(2) = sqrt(sum(((PontoMedido(2,:))-(Dado(2,:))).^2)/kSV);
	erroRMS(3) = sqrt(sum(((PontoMedido(3,:))-(Dado(3,:))).^2)/kSV);
	erroRMS(4) = sqrt(sum(((PontoMedido(7,:))-(Dado(7,:))).^2)/kSV);

	erroRMS(5) = sqrt(sum(((PontoMedidoModificado)-(DadoModificado)).^2)/kSV);
%	erroRMS(5) = sqrt(sum(((PontoMedido(8,:))-(Dado(8,:))).^2)/NPoint);

	erroRMS(6) = sqrt(sum(((PontoMedido(9,:))-(Dado(9,:))).^2)/kSV);
	erroRMS(7) = sqrt(sum(((PontoMedido(13,:))-(Dado(13,:))).^2)/kSV);
	erroRMS(8) = sqrt(sum(((PontoMedido(14,:))-(Dado(14,:))).^2)/kSV);
	erroRMS(9) = sqrt(sum(((PontoMedido(15,:))-(Dado(15,:))).^2)/kSV);

	erroTotal = mean(erroRMS);
	ListaErro(Iteracao,1) = erroTotal;
	ListaErro(Iteracao,2) = Iteracao;

	ListaErro5(Iteracao,1) = erroRMS(5);
	ListaErro5(Iteracao,2) = Iteracao;

	ListaErroR(Iteracao,1) = ((erroTotal*9)-erroRMS(5))/8;
	ListaErroR(Iteracao,2) = Iteracao;	

%	if(Iteracao == 1)
%		erroMinimo = erroTotal;
%		DadoMinimo = Dado;
%		PosicaoMinima = b;
%		IteracaoMinima = Iteracao;
%
%		erroMinimo2 = erroTotal;
%		DadoMinimo2 = Dado;
%		PosicaoMinima2 = b;
%		IteracaoMinima2 = Iteracao;
%
%		erroMinimo3 = erroTotal;
%		DadoMinimo3 = Dado;
%		PosicaoMinima3 = b;
%		IteracaoMinima3 = Iteracao;
%	end

%	if(erroTotal <= erroMinimo)	
%		erroMinimo = erroTotal;
%		DadoMinimo= Dado;
%		PosicaoMinima = b;
%		IteracaoMinima = Iteracao;
%	end
%	if((erroTotal > erroMinimo)&(erroTotal <= erroMinimo2))	
%		erroMinimo2 = erroTotal;
%		DadoMinimo2= Dado;
%		PosicaoMinima2 = b;
%		IteracaoMinima2 = Iteracao;
%	end
%	if((erroTotal > erroMinimo2)&(erroTotal <= erroMinimo3))	
%		erroMinimo3 = erroTotal;
%		DadoMinimo3= Dado;
%		PosicaoMinima3 = b;
%		IteracaoMinima3 = Iteracao;
%	end

end

%fecha os arquivos
fclose(fid);
fclose(fidp);

%atribui Respostas
[erroEmOrdem, Loc]   = sort(ListaErro(:,1));
[erroEmOrdem5, Loc5] = sort(ListaErro5(:,1));
[erroEmOrdemR, LocR] = sort(ListaErroR(:,1));

%Resp  = DadoMinimo;
%RErro = erroMinimo;
%Rpos  = PosicaoMinima; 
%RPos = b;





