% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%	MPOV - uloha 2 - aktivni triangulace	
%
%
%	-  zmerte pozice jednotlivych laseru na osciloskopu a zaneste
%	   do tabulky A
%
%	
%	verze: 9-2015 / midas.uamt.feec.vutbr.cz
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


clear all;
close all;
clc;


% ZACNETE PROGRAMOVAT ZDE >>>
% ... zde doplnte hodnoty
A=[
];

rozmer = size(A);
vzorku = rozmer(1);
laseru = rozmer(2)-1;
xx = [];
kk = [];

for n=1:laseru,     %pro kazdy laser
  L = A(:,1);
  K = A(:,n+1);
  B = [K ones(vzorku,1) -L.*K];
  Bplus = ((B'*B)^-1)*B';
  T = Bplus*L
  L_dop = B*T;
  E = sum((L-L_dop).^2)   %vypocet celkove chyby mezi zadanymi a vypoctenymi hodnotami
 
  figure(n) 
  plot(K,L,'b+'); %kalibracni data
  hold on   
  plot(K,L_dop,'r.'); %vypocitany model
  title(sprintf('Laser %d', n));
  xlabel(sprintf('posice laseru \n\n t1 = %g   t2 = %g   t3 = %g\n chyba = %g \n',T(1),T(2),T(3),E))
  ylabel('vzdálenost')

  %vykresleni vsech prubehu do jednoho
  figure(laseru+1)
  plot(K,L,'b+'); %kalibracni data
  hold on   
  plot(K,L_dop,'r.'); %vypocitany model
  xlabel('pozice laseru')
  ylabel('vzdálenost') 
 
  switch n
      case 1, T1 = T';
      case 2, T2 = T';
      case 3, T3 = T';
      case 4, T4 = T';
  end
  TT(n,:) = T(:)';
end  
TT

% ZACNETE PROGRAMOVAT ZDE >>>
% ... umistete stativ do libovolne vzdalenosti a ze znalosti vyse vypoctenych hodnot
% vypoctete aktualni vzdalenost - overte metrem


