function varargout = program_gui(varargin)
% PROGRAM_GUI MATLAB code for program_gui.fig
%      PROGRAM_GUI, by itself, creates a new PROGRAM_GUI or raises the existing
%      singleton*.
%
%      H = PROGRAM_GUI returns the handle to a new PROGRAM_GUI or the handle to
%      the existing singleton*.
%
%      PROGRAM_GUI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in PROGRAM_GUI.M with the given input arguments.
%
%      PROGRAM_GUI('Property','Value',...) creates a new PROGRAM_GUI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before program_gui_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to program_gui_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help program_gui

% Last Modified by GUIDE v2.5 10-May-2017 16:43:43

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @program_gui_OpeningFcn, ...
                   'gui_OutputFcn',  @program_gui_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before program_gui is made visible.
function program_gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to program_gui (see VARARGIN)

% Choose default command line output for program_gui
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes program_gui wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = program_gui_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)

%%KLASIFIKACE POMOCÍ VEKTORU PŘÍZNAKŮ
%Načtení dat
arrayfun(@cla,findall(0,'type','axes'))
arrayfun(@cla,findall(0,'type','text'))
xxx=uigetfile({'*.xlsx';'*.xls'});
[a b c]=xlsread(xxx);
set(handles.text2,'String',xxx)
a_x = a(:,1);
a_y = a(:,2);
a_z = a(:,3);
g_x = a(:,4);
g_y = a(:,5);
g_z = a(:,6);
cas = a(:,7);
cass=cas./1000;
%Definice hodnot senzitivity pro akcelerometr a gyroskop podle tabulky z datasheetu
%Akcelerometr:
%pro rozsah +/-2g je odpovídající hodnota s_a 16384
% pro rozsah +/-4g je odpovídající hodnota s_a 8192
% pro rozsah +/-8g je odpovídající hodnota s_a 4096
% pro rozsah +/-16g je odpovídající hodnota s_a 2048
% Gyroskop::
% pro rozsah +/-250st/s je odpovídající hodnota s_g 131
% pro rozsah +/-500st/s je odpovídající hodnota s_g 65.5
% pro rozsah +/-1000st/s je odpovídající hodnota s_g 32.8
% pro rozsah +/-2000st/s je odpovídající hodnota s_g 16.4
s_a = 4096;
s_g = 65.5;
a_x = a_x./s_a;
a_y = a_y./s_a;
a_z = a_z./s_a;
g_x = g_x./s_g;
g_y = g_y./s_g;
g_z = g_z./s_g;

a_x2 = a_x./9.81;
a_y2 = a_y./9.81;
a_z2 = a_z./9.81;
g_x2 = g_x.*(pi/180);
g_y2 = g_y.*(pi/180);
g_z2 = g_z.*(pi/180);
%filtrace HP
[b,a] = butter(2,0.3/(54/2),'high');
azf1 = filter(b,a,a_z2);
axf1 = filter(b,a,a_x2);
ayf1 = filter(b,a,a_y2);
%mediánová filtrace
azf1m = azf1.*9.81;
axf1m = axf1.*9.81;
ayf1m = ayf1.*9.81;
axf1mm = medfilt1(axf1m,3);
ayf1mm = medfilt1(ayf1m,3);
azf1mm = medfilt1(azf1m,3);
%vykreslení akcelerometrických signálu do prvního grafu
axes(handles.axes1) 
plot(cass,axf1mm,'r',cass,ayf1mm,'g',cass,azf1mm,'b');
title('Data z akcelerometru','FontSize', 12)
xlabel('čas [s]','FontSize',10)
ylabel('lineární zrychlení [g]','FontSize',10')
legend('osa ax','osa ay','osa az','Location','NorthEast')
%složení signálů akc. os ay a az 
kombo = ayf1mm + azf1mm;
%kombo_m = medfilt1(kombo,3);
kombo = kombo';
%%nastavení prahových hodnot
prah_minmax_beh = 3;
prah_minmax_chuze = 0.3;
mm=1;
prah_rozptyl_beh = 0.68;
prah_rozptyl_chuze = 0.01;%0.005
ro=2;
prah_rms_beh = 0.7;
prah_rms_chuze = 0.1;
rm=3;
%nastavení pracovního okna
zacatek_cas = min(cass);
vzorky = 54;
vektor_priznaku = [];
klasifikacni_vektor = [];
minmaxx = []; 
rozptyl = [];
rmss = [];
poradi = 1;
%prodházení signálu oknem o velikosti 54 vzorků (1s) s posunem 10 vzorků
%pro každé okno je proveden výpočet hodnoty minmax, rozptylu a
%kvadratického průměru (RMS)
%běh je zakódován do vektoru příznaků jako 2, běh jako 1, odpočinek jako 0
%každému parametru náleží jeden řádek ve zmíněném vektoru
for i = 4*vzorky:10:(fix(length(kombo)/vzorky)*vzorky)-vzorky %%od 4.sekundy - kvůli kolísání
    pracovni_signal = kombo(i:(i+vzorky));
    minmaxx(poradi) = max(pracovni_signal) - min(pracovni_signal);
    if(minmaxx(poradi)) >= prah_minmax_chuze & (minmaxx(poradi)) <= prah_minmax_beh
        vektor_priznaku(mm,poradi) = 1;
    elseif(minmaxx(poradi)) >= prah_minmax_beh
        vektor_priznaku(mm,poradi) = 2;
    else
        vektor_priznaku(mm,poradi) = 0;
    end
    rozptyl(poradi) = var(pracovni_signal);
    if(rozptyl(poradi)) >= prah_rozptyl_chuze & (rozptyl(poradi)) <= prah_rozptyl_beh
        vektor_priznaku(ro,poradi) = 1;
    elseif(rozptyl(poradi)) >= prah_rozptyl_beh
        vektor_priznaku(ro,poradi) = 2;
    else
        vektor_priznaku(ro,poradi) = 0;
    end
    rmss(poradi) = sqrt(mean(pracovni_signal.^2));
    if(rmss(poradi)) >= prah_rms_chuze & (rmss(poradi)) <= prah_rms_beh
        vektor_priznaku(rm,poradi) = 1;
    elseif(rmss(poradi)) >= prah_rms_beh
        vektor_priznaku(rm,poradi) = 2;
    else
        vektor_priznaku(rm,poradi) = 0;
    end

    poradi = poradi+1;
end

%výpočet modusu pro jednoznačnou klasifikaci po sloupcích vektoru příznaků 
vektorr = mode(vektor_priznaku);
%%hledání úseku BĚHU a uložení první souřadnice počátku prvního úseku
useky_beh = find(vektorr == 2);
indexyb = [];
indexyb(1) = useky_beh(1);
bb = 2;
rozdilyb = [];
rb = 1;
%hledání dalších počátků a konců úseku běhu + kontrola délky úseků běhu
for i = 1:length(useky_beh)-1
    if useky_beh(i) ~= useky_beh(i+1)-1
        indexyb(bb) = useky_beh(i);
        indexyb(bb+1) = useky_beh(i+1);
        rozdilyb(rb) = indexyb(bb)-indexyb(bb-1);
        bb = bb + 2; 
        rb = rb + 1;
    end
end
skb = [];
%uložení souřadnice konce posledního úseku běhu
indexyb(length(indexyb)+1) = useky_beh(end);
rozdilyb(length(rozdilyb)+1) = indexyb(end)-indexyb(end-1);
%jestliže je některý úsek běhu kratší jak 5 oken, je přepsán na chůzi
skb = find(rozdilyb <= 5); %5
for i = 1:length(skb)
    vektorr(indexyb(2*skb(i)-1):indexyb(2*skb(i))) = 1;
    indexyb([(2*skb(i)) (2*skb(i)-1)]) = 0;
end
indexyb(indexyb == 0) = [];

%%hledání úseků CHŮZE, uložení souřadnice počátku prvního úseku
useky_chuze = find(vektorr == 1);
indexych = [];
indexych(1) = useky_chuze(1);
chch = 2;
rozdilych = [];
rch = 1;
%hledání dalších počátků a konců úseku chůze + kontrola délky úseků chůze
for i = 1:length(useky_chuze)-1
    if useky_chuze(i) ~= useky_chuze(i+1)-1
        indexych(chch) = useky_chuze(i);
        indexych(chch+1) = useky_chuze(i+1);
        rozdilych(rch) = indexych(chch)-indexych(chch-1);
        chch = chch + 2; 
        rch = rch + 1;
    end
end
skch = [];
%uložení souřadnice konce posledního úseku chůze
indexych(length(indexych)+1) = useky_chuze(end);
rozdilych(length(rozdilych)+1) = indexych(end)-indexych(end-1);
%kontrola délky úseků: jestliže je některý úsek běhu kratší nebo rovno 7 oken, 
%je přepsán na chůzi nebo odpočinek
skch = find(rozdilych <= 7);
for ii = 1:length(skch)
    if vektorr(indexych(2*skch(ii)-1)-1) == 2 || vektorr(indexych(2*skch(ii))+1) == 2
        vektorr(indexych(2*skch(ii)-1):indexych(2*skch(ii))) = 2;
        indexych([(2*skch(ii)) (2*skch(ii)-1)]) = 0;
    else
        vektorr(indexych(2*skch(ii)-1):indexych(2*skch(ii))) = 0;
        indexych([(2*skch(ii)) (2*skch(ii)-1)]) = 0;
    end
end
indexych(indexych == 0) = [];
%oprava konců a začátku běhu kvůli možnému přepsání hodnot v pracovním vektoru 
bb2 = 2;
indexyb2 = [];
oprava_beh = find(vektorr == 2);
indexyb2(1) = oprava_beh(1);
for iii = 1:length(oprava_beh)-1
    if oprava_beh(iii) ~= oprava_beh(iii+1)-1
        indexyb2(bb2) = oprava_beh(iii);
        indexyb2(bb2+1) = oprava_beh(iii+1);
        bb2 = bb2 + 2; 
    end
end
indexyb2(length(indexyb2)+1) = oprava_beh(end);
%hledání konců a začátků úseků ODPOČINKU
oo = 2;
indexyo = [];
odpocinek = find(vektorr == 0);
indexyo(1) = odpocinek(1);
for i4 = 1:length(odpocinek)-1
    if odpocinek(i4) ~= odpocinek(i4+1)-1
        indexyo(oo) = odpocinek(i4);
        indexyo(oo+1) = odpocinek(i4+1);
        oo = oo + 2; 
    end
end

%výpočet časových okamžiků pro začátky a konce úseků odpočinku, běhu a chůze
indexyo(length(indexyo)+1) = odpocinek(end);
z_o = indexyo(1:2:end);
k_o = indexyo(2:2:end);
zacatek_odpocinek = cass((4*vzorky)+(10*z_o)-10+(vzorky/2)-2);
konec_odpocinek = cass((4*vzorky)+(10*k_o)-10+(vzorky/2)+10-2);
konec_odpocinek(end) = max(cass);
konec_odpocinek = konec_odpocinek';
zacatek_odpocinek(1) = min(cass);
zacatek_odpocinek = zacatek_odpocinek';
% cb_max = max(kombo)+2;
% cb_min = min(kombo)-2;
%nastavení souřadnic pro vykreslení barevného pozadí v grafu
cb_max = max(kombo)+2;
cb_min = min(kombo)-2;
z_b = indexyb2(1:2:end);
k_b = indexyb2(2:2:end);
zacatek_beh = cass((4*vzorky)+(10*z_b)-10+(vzorky/2)-2);
zacatek_beh = zacatek_beh';
konec_beh = cass((4*vzorky)+(10*k_b)-10+(vzorky/2)+10-2);
konec_beh = konec_beh';
z_ch = indexych(1:2:end);
k_ch = indexych(2:2:end);
zacatek_chuze = cass((4*vzorky)+(10*z_ch)-10+(vzorky/2)-2);
zacatek_chuze = zacatek_chuze';
konec_chuze = cass((4*vzorky)+(10*k_ch)-10+(vzorky/2)+10-2);
konec_chuze = konec_chuze';

global gcass gaxf1mm gayf1mm gazf1mm gcbmax gcbmin gkombo gzacch gzacb gkonch gkonb
gcass = cass;
gaxf1mm = axf1mm;
gayf1mm = ayf1mm;
gazf1mm = azf1mm;
gcbmax = cb_max;
gcbmin = cb_min;
gkombo = kombo; 
gzacch = zacatek_chuze;
gzacb = zacatek_beh;
gkonch = konec_chuze;
gkonb = konec_beh;
%vykreslení složeného signálu ay+az se zvýrazněním detekovaných úseků běhu
%a chůze
axes(handles.axes2)
rectangle('Position',[min(cass),cb_min,cass(end)-min(cass),cb_max-cb_min],'EdgeColor','k','FaceColor',[1 1 1]);
hold on
for k = 1:length(zacatek_beh)
    h1 = rectangle('Position',[zacatek_beh(k),cb_min,konec_beh(k)-zacatek_beh(k),cb_max-cb_min],'EdgeColor','k','FaceColor',[1 1 0]);
end
for k2 = 1:length(zacatek_chuze)
    h2 = rectangle('Position',[zacatek_chuze(k2),cb_min,konec_chuze(k2)-zacatek_chuze(k2),cb_max-cb_min],'EdgeColor','k','FaceColor',[1 0 1]);
end
plot(cass,kombo,'k');
title('Klasifikace pohybu','FontSize', 12)
xlabel('čas [s]','FontSize',10)
ylabel('lineární zrychlení [g]','FontSize',10')
legend('ay+az','Location','northeast')
%úprava vektorů a hodnot pro vypsání v textovém poli
zacatky = [zacatek_odpocinek zacatek_chuze zacatek_beh];
konce = [konec_odpocinek konec_chuze konec_beh];
druhy_pohybu = zeros(1,length(zacatky));
druhy_pohybu(length(zacatek_odpocinek)+1:length(zacatek_odpocinek)+length(zacatek_chuze)) = 1;
druhy_pohybu(length(zacatek_odpocinek)+length(zacatek_chuze)+1:length(zacatek_odpocinek)+length(zacatek_chuze)+length(zacatek_beh)) = 2;
[zacatky2,poradiz] = sort(zacatky);
[konce2,poradik] = sort(konce);
druhy_pohybu2 = druhy_pohybu(poradiz);

doba_celkem = [];
for i5 = 1:length(zacatky)
    doba_celkem(i5) = konce2(i5)-zacatky2(i5);
end
    
zacatky_t = zacatky2';  
konce_t = konce2';
doba_celkem_t = doba_celkem';
druhy_pohybu_t = druhy_pohybu2';

for i6 = 1:length(druhy_pohybu2)
    if druhy_pohybu2(i6) == 0
        druhy_text(i6) = {'Odpočinek'};
    elseif druhy_pohybu2(i6) == 1
        druhy_text(i6) = {'Chůze'};
    else
        druhy_text(i6) = {'Běh'};
    end
end

druhy_text = druhy_text';
doba_zaznamu = max(cass) - min(cass);

celkem_odpocinek = [];
celkem_chuze = [];
celkem_beh = [];
for i6 = 1:length(zacatek_odpocinek)
    celkem_odpocinek(i6) = konec_odpocinek(i6)-zacatek_odpocinek(i6);
end
celkem_odpocinek_sum = sum(celkem_odpocinek);
for i6 = 1:length(zacatek_chuze)
    celkem_chuze(i6) = konec_chuze(i6)-zacatek_chuze(i6);
end
celkem_chuze_sum = sum(celkem_chuze);
for i6 = 1:length(zacatek_beh)
    celkem_beh(i6) = konec_beh(i6)-zacatek_beh(i6);
end
celkem_beh_sum = sum(celkem_beh);

set(handles.text9,'String',zacatky_t);
set(handles.text10,'String',konce_t);
set(handles.text11,'String',doba_celkem_t);
%set(handles.text12,'String',druhy_pohybu_t);
set(handles.text12,'String',druhy_text);
set(handles.text16,'String',celkem_beh_sum);
set(handles.text17,'String',celkem_chuze_sum);
set(handles.text18,'String',celkem_odpocinek_sum);
set(handles.text19,'String',doba_zaznamu);

global gzacatky gkonce gdobacelkem gdruhytext
gzacatky = zacatky_t;
gkonce = konce_t;
gdobacelkem = doba_celkem_t;
gdruhytext = druhy_text;


% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
%%KLASIFIKACE POMOCÍ VEKTORU PŘÍZNAKŮ
%Načtení dat
arrayfun(@cla,findall(0,'type','axes'))
arrayfun(@cla,findall(0,'type','text'))
xxx=uigetfile({'*.xlsx';'*.xls'});
[a b c]=xlsread(xxx);
set(handles.text2,'String',xxx)
a_x = a(:,1);
a_y = a(:,2);
a_z = a(:,3);
g_x = a(:,4);
g_y = a(:,5);
g_z = a(:,6);
cas = a(:,7);
cass=cas./1000;
%Definice hodnot senzitivity pro akcelerometr a gyroskop podle tabulky z datasheetu
%Akcelerometr:
%pro rozsah +/-2g je odpovídající hodnota s_a 16384
% pro rozsah +/-4g je odpovídající hodnota s_a 8192
% pro rozsah +/-8g je odpovídající hodnota s_a 4096
% pro rozsah +/-16g je odpovídající hodnota s_a 2048
% Gyroskop::
% pro rozsah +/-250st/s je odpovídající hodnota s_g 131
% pro rozsah +/-500st/s je odpovídající hodnota s_g 65.5
% pro rozsah +/-1000st/s je odpovídající hodnota s_g 32.8
% pro rozsah +/-2000st/s je odpovídající hodnota s_g 16.4
s_a = 4096;
s_g = 65.5;
a_x = a_x./s_a;
a_y = a_y./s_a;
a_z = a_z./s_a;
g_x = g_x./s_g;
g_y = g_y./s_g;
g_z = g_z./s_g;

a_x2 = a_x./9.81;
a_y2 = a_y./9.81;
a_z2 = a_z./9.81;
g_x2 = g_x.*(pi/180);
g_y2 = g_y.*(pi/180);
g_z2 = g_z.*(pi/180);
%filtrace HP
[b,a] = butter(2,0.3/(54/2),'high');
azf1 = filter(b,a,a_z2);
axf1 = filter(b,a,a_x2);
ayf1 = filter(b,a,a_y2);
%mediánová filtrace
azf1m = azf1.*9.81;
axf1m = axf1.*9.81;
ayf1m = ayf1.*9.81;
axf1mm = medfilt1(axf1m,3);
ayf1mm = medfilt1(ayf1m,3);
azf1mm = medfilt1(azf1m,3);
%vykreslení akcelerometrických signálů do prvního grafu
axes(handles.axes1) 
plot(cass,axf1mm,'r',cass,ayf1mm,'g',cass,azf1mm,'b');
title('Data z akcelerometru','FontSize', 12)
xlabel('čas [s]','FontSize',10)
ylabel('lineární zrychlení [g]','FontSize',10')
legend('osa ax','osa ay','osa az','Location','NorthEast')
%složení signálu z akc. os ay a az + mediánová filtrace
kombo = ayf1mm + azf1mm;
kombo_m = medfilt1(kombo,3);
%vytvoření signálu absolutní hodnoty diferencí okamžitých výchylek signálů, které spolu
%sousedí od jeden vzorek
minus = zeros(1,length(kombo_m));
for i = 1:(length(kombo_m)-2);
    minus(i) = abs(kombo_m(i+2)-kombo_m(i));
end
%nalezení píku v signálu diferencí
[pks,locs] = findpeaks(minus,'MinPeakHeight',0.3,'MinPeakDistance',25); %'MinPeakHeight',0.3
%převedení lokalizace píků na časové okamžiky
locs_c = cass(locs);
locs_c = locs_c';
%úprava výchylek píků
%výpočet průměru z těch, které jsou vyšší než 1,5 = průměr pro běh
%výpočet průměru z těch, které jsou měnší než 2/3 hodnoty průměru pro běh =
%průměr pro chůzi
pksm = pks;
velke = pks(pks>=1.5);
pr_velke = mean(velke);
pksm(pksm>=pr_velke) = pr_velke;
maly = (pksm<(2/3*pr_velke));
pr_maly = mean(maly);
%nezařazené píky jsou zařazeny podle bližší hodnoty průměru pro běh či
%průměru pro chůzi
for i = 1:length(pksm)
    if(abs(pksm(i)-pr_maly)<(abs(pksm(i)-pr_velke)))
        pksm(i) = pr_maly;
    else
        pksm(i) = pr_velke;
    end
end
%detekce a náprava píků, které jsou mezi píky běhu zařazeny jako chůze        
okynko = 5;
for i = 1:length(pksm)-(okynko-1)
    if (pksm(i) == pr_velke && pksm(i+4) == pr_velke) || (pksm(i) == pr_velke && pksm(i+3) == pr_velke)
        if locs_c(i+4) - locs_c(i) < 5
            pksm(i+1) = pr_velke;
            pksm(i+2) = pr_velke;
            pksm(i+3) = pr_velke;
        end
    end
end

%detekce a vymazání náhodných píků v úsecích odpočinku 
 D = length(pksm)-1;
 for i = 1:D
     if i == 1
         if locs_c(i+1)-locs_c(i) >= 1.3
             locs_c(i) = [];
             locs(i) = [];
             pksm(i) = [];
             pks(i) = [];
         end
     elseif i == D 
     else
         if locs_c(i)-locs_c(i-1) >= 1.3 && locs_c(i+1)-locs_c(i) >= 1.3 
             locs_c(i) = [];
             locs(i) = [];
             pksm(i) = [];
             pks(i) = [];
         end
     end
 end
 if (locs_c(end)-locs_c(end-1) >= 1.3)
     locs_c(end) = [];
     locs(end) = [];
     pksm(end) = [];
     pks(end) = [];
 end
 
%detekce a přepsání náhodných, špatně zařazených píků v úseku běhu či chůze
for i = 2:length(pksm)-1
    if pksm(i) ~= pksm (i-1) && pksm(i-1) == pksm(i+1)
        pksm(i) = pksm(i-1);
    end
    if i ~= 2
        if pksm(i-2) ~= pksm(i) && pksm(i-2) == pksm(i+1) && locs_c(i)-locs_c(i-1) < 1.3
            pksm(i) = pksm(i-2);
            pksm(i-1) = pksm(i-2);
        end
    end
end

%odstranění píků během prvních 3 sekund akvizice
pksm(locs_c<3) = [];
locs(locs_c<3) = [];
locs_c(locs_c<3) = [];

%nastavení prahových hodnot (v tomto okamžiku už píky nabývají jedné z dvou
%hodnot: průměru pro běh nebo průměru pro chůzi)
p_chuze = 0.25;
p_beh = 1.5;
vektorr = zeros(1,length(pksm));

%%hledání úseků ODPOČINKU
%na základě počtu úseků odpočinku se se signálem pracuje jako s celkem nebo
%po částech
usek_odpocinek = 0;
index_oo = [];
oo = 1;
for ii = 1:length(locs)-1
    if locs(ii+1)-locs(ii) > 100
        usek_odpocinek = usek_odpocinek+1;
        index_oo(oo) = ii;
        oo = oo+1;
    end
end
oo = oo-1;
%%nastavení úseku, se kterým se bude pracovat 
pracovni_usek_signalu = [];
konce_beh = [];
zacatek_chuze = [];
konec_chuze = [];
k_chuze = [];
%pracovni_vektor = [];
%se signálem se pracuje po částech - byl nalezen minimálně jeden úsek běhu 
%(nejedná se o počáteční úsek ani o úsek odpočinku na konci měření) 
if usek_odpocinek >= 1
    for iii = 1:usek_odpocinek+1
        if iii == 1
            pracovni_usek_signalu = pksm(1:index_oo(iii));
        elseif iii == length(index_oo)+1
            pracovni_usek_signalu = pksm(index_oo(end)+1:end);
        else
            pracovni_usek_signalu = pksm(index_oo(iii-1)+1:index_oo(iii));  
        end
        %kódování píků v pracovním vektoru - pro běh = 2, pro chůzi = 1
        pracovni_vektor = zeros(1,length(pracovni_usek_signalu));
        pracovni_vektor(find(pracovni_usek_signalu > p_chuze)) = 1;
        pracovni_vektor(find(pracovni_usek_signalu > p_beh)) = 2;
        %%hledání souřadnic pro BĚH
        souradnice_beh = find(pracovni_vektor==2);
        %jestli to neni prazdna množina, uložím souřadici prvního píku
        %prvního úseku běhu (o jednu menší - beru ještě předchozí pík
        %chůze)
        if length(souradnice_beh) > 1 
            if souradnice_beh(1) > 1
                s_beh = souradnice_beh(1)-1;
               pracovni_vektor(souradnice_beh(1)-1) = 2;
            else
                s_beh = souradnice_beh(1);
            end
            be = 2;
            %hledání dalších počátečních a koncových píků úseku běhu
            for iiii = 1:(length(souradnice_beh)-1)
                if souradnice_beh(iiii) ~= souradnice_beh(iiii+1)-1  
                    s_beh(be) = souradnice_beh(iiii+1)-1;
                    konce_beh(be-1) = souradnice_beh(iiii)+1;
                    be = be+1;
                end
                
            end
            %uložení i posledního píku posledního úseku běhu
            if souradnice_beh(end) < length(pracovni_vektor)
                konce_beh(length(konce_beh)+1) = souradnice_beh(end)+1;
                pracovni_vektor(souradnice_beh(end)+1) = 2;
            else
                konce_beh(length(konce_beh)+1) = souradnice_beh(end);
            end
            if pracovni_vektor(1) == 1 & pracovni_vektor(2) == 2
                pracovni_vektor(1) = 2;
                s_beh(1) = 1;
            end
            if pracovni_vektor(end) == 1 & pracovni_vektor(end-1) == 2
                pracovni_vektor(end) = 2;
                konce_beh(end) = length(pracovni_vektor);
            end
            %uložení hodnot počátků a konců úseků běhu do společných vektorů pro
            %celý signál
            if iii == 1
                vektorr(1:index_oo(iii)) = pracovni_vektor;
                zacatek_beh(1:length(s_beh)) = s_beh;
                konec_beh(1:length(konce_beh)) = konce_beh;
            elseif iii == length(index_oo)+1
                vektorr(index_oo(end)+1:length(pksm)) = pracovni_vektor;
                s_beh = s_beh+(index_oo(end));
                konce_beh = konce_beh+(index_oo(end));
                zacatek_beh(length(zacatek_beh)+1:length(zacatek_beh)+length(s_beh)) = s_beh;
                konec_beh(length(konec_beh)+1:length(konec_beh)+length(konce_beh)) = konce_beh;
            else
                vektorr(index_oo(iii-1)+1:index_oo(iii)) = pracovni_vektor;
                s_beh = s_beh+(index_oo(iii-1));
                konce_beh = konce_beh + (index_oo(iii-1));
                zacatek_beh(length(zacatek_beh)+1:length(zacatek_beh)+length(s_beh)) = s_beh;
                konec_beh(length(konec_beh)+1:length(konec_beh)+length(konce_beh)) = konce_beh;
                
            end
            
            konce_beh = [];
            s_beh = [];
        end
        
        %%hledání souřadnic pro CHŮZI
        souradnice_chuze = find(pracovni_vektor==1);
        if length(souradnice_chuze) > 1
            %uložení počáteční souřadnice píku prvního úseku
            s_chuze = souradnice_chuze(1);
            chu = 2;
            for i5 = 1:(length(souradnice_chuze)-1)
                if souradnice_chuze(i5) ~= souradnice_chuze(i5+1)-1
                    s_chuze(chu) = souradnice_chuze(i5+1);
                    k_chuze(chu-1) = souradnice_chuze(i5);
                    chu = chu+1;
                end
            end
            %uložení koncové souřadnice píku posledního úseku chůze
            if length(k_chuze) ~= 0
                k_chuze(length(k_chuze)+1) = souradnice_chuze(end);
            %případ, kdy je v pracovním signálu jen jeden úsek chůze
            else 
                k_chuze = souradnice_chuze(end);
            end
            %kontrola, jestli se za koncem úseku chůze nenachází pík pro běh 
            if k_chuze(end) ~= length(pracovni_vektor)
                if pracovni_vektor(k_chuze(end)+1) == 2
                    k_chuze(end) = k_chuze(end)+1;
                end
            end
            %uložení hodnot počátků a konců úseků chůze do společných vektorů pro
            %celý signál
            if iii == 1
                vektorr(1:index_oo(iii)) = pracovni_vektor;
                zacatek_chuze(1:length(s_chuze)) = s_chuze;
                konec_chuze(1:length(k_chuze)) = k_chuze;
            elseif iii == length(index_oo)+1
                vektorr(index_oo(end)+1:length(pksm)) = pracovni_vektor;
                s_chuze = s_chuze+(index_oo(end));
                k_chuze = k_chuze+(index_oo(end));
                zacatek_chuze(length(zacatek_chuze)+1:length(zacatek_chuze)+length(s_chuze)) = s_chuze;
                konec_chuze(length(konec_chuze)+1:length(konec_chuze)+length(k_chuze)) = k_chuze;
            else
                vektorr(index_oo(iii-1)+1:index_oo(iii)) = pracovni_vektor;
                s_chuze = s_chuze+(index_oo(iii-1));
                k_chuze = k_chuze + (index_oo(iii-1));
                zacatek_chuze(length(zacatek_chuze)+1:length(zacatek_chuze)+length(s_chuze)) = s_chuze;
                konec_chuze(length(konec_chuze)+1:length(konec_chuze)+length(k_chuze)) = k_chuze;
            end
            s_chuze = [];
            k_chuze = [];
        end
        pracovni_vektor = [];
        pracovni_usek_signalu = [];
        %konec useku
    end
%práce se signálem jako celkem, úsek odpočinku je pouze na počátku a konci
%meření, v pacovním úseku signálu budou všechny hodnoty výchylek píků
else
    pracovni_usek_signalu = pksm;
    pracovni_vektor = zeros(1,length(pracovni_usek_signalu));
    pracovni_vektor(find(pracovni_usek_signalu > p_chuze)) = 1;
    pracovni_vektor(find(pracovni_usek_signalu > p_beh)) = 2;
    %%souradnice_beh
    souradnice_beh = find(pracovni_vektor==2);
    %uložení první souřadnice píku běhu prvního úseku
    if length(souradnice_beh) > 1
        if souradnice_beh(1) > 1
            s_beh = souradnice_beh(1)-1;
            %pracovni_vektor(souradnice_beh(1)-1) = 2;
        else
            s_beh = souradnice_beh(1); %%length(s_beh)+1
        end
        be = 2;
        %hledání dalších počátečních a koncových píků úseku běhu
        for i6 = 1:(length(souradnice_beh)-1)
            if souradnice_beh(i6) ~= souradnice_beh(i6+1)-1  
                s_beh(be) = souradnice_beh(i6+1)-1;%%-1 zkouska
                konce_beh(be-1) = souradnice_beh(i6)+1; %%+1
                be = be+1;
            end
        end
        %uložení i posledního píku posledního úseku běhu
        if souradnice_beh(end) < length(pracovni_vektor)
            konce_beh(length(konce_beh)+1) = souradnice_beh(end)+1; %%+1
            pracovni_vektor(souradnice_beh(end)+1) = 2;
        else
            konce_beh(length(konce_beh)+1) = souradnice_beh(end);
        end
        if pracovni_vektor(1) == 1 & pracovni_vektor(2) == 2
            pracovni_vektor(1) = 2;
            s_beh(1) = 1;
        end
        if pracovni_vektor(end) == 1 & pracovni_vektor(end-1) == 2
            pracovni_vektor(end) = 2;
            konce_beh(end) = length(pracovni_vektor);
        end
        %uložení hodnot počátků a konců úseků běhu do společných vektorů
        vektorr(1:length(pracovni_vektor)) = pracovni_vektor;
        zacatek_beh(1:length(s_beh)) = s_beh;
        konec_beh(1:length(konce_beh)) = konce_beh;
    
    end
    %%hledání souřadnic pro CHŮZI
    souradnice_chuze = find(pracovni_vektor==1);
    %uložení počáteční souřadnice píku prvního úseku
    if length(souradnice_chuze) > 1
        s_chuze = souradnice_chuze(1);
        chu = 2;
    end
    %vyhledávání a ukládání souřadnic píků dalších počátků a konců úseků
    %chize
    for i7 = 1:(length(souradnice_chuze)-1)
        if souradnice_chuze(i7) ~= souradnice_chuze(i7+1)-1
            s_chuze(chu) = souradnice_chuze(i7+1);
            k_chuze(chu-1) = souradnice_chuze(i7);
            chu = chu+1;
        end
    end
    %uložení koncové souřadnice píku posledního úseku chůze
    if length(k_chuze) ~= 0
        k_chuze(length(k_chuze)+1) = souradnice_chuze(end);
    else
        k_chuze = souradnice_chuze(end);
    end
    %uložení hodnot počátků a konců úseků chůze do společných vektorů
    vektorr(1:length(pracovni_vektor)) = pracovni_vektor;
    zacatek_chuze(1:length(s_chuze)) = s_chuze;
    konec_chuze(1:length(k_chuze)) = k_chuze;          
    
end

%%nastavení pro vykreslení pozadí (barevných obdélníků), které odlišuje
%%úseky běhu a chůze
cb_max = max(kombo)+2;
cb_min = min(kombo)-2;
%určení časových okamžiků počátků a konců úseků běhu a chůze
zacatek_beh_c = locs_c(zacatek_beh);
konec_beh_c = locs_c(konec_beh);
zacatek_chuze_c = locs_c(zacatek_chuze);
konec_chuze_c = locs_c(konec_chuze);

global gcass gaxf1mm gayf1mm gazf1mm gcbmax gcbmin gkombo gzacch gzacb gkonch gkonb
gcass = cass;
gaxf1mm = axf1mm;
gayf1mm = ayf1mm;
gazf1mm = azf1mm;
gcbmax = cb_max;
gcbmin = cb_min;
gkombo = kombo; 
gzacch = zacatek_chuze_c;
gzacb = zacatek_beh_c;
gkonch = konec_chuze_c;
gkonb = konec_beh_c;
%vykreslení složeného signálu ay+az s barevně odlišenými klasifikovanými úseky chůze a běhu
axes(handles.axes2)
rectangle('Position',[min(cass),cb_min,cass(end)-min(cass),cb_max-cb_min],'EdgeColor','k','FaceColor',[1 1 1]);
hold on
for k = 1:length(zacatek_beh_c)
    rectangle('Position',[zacatek_beh_c(k),cb_min,konec_beh_c(k)-zacatek_beh_c(k),cb_max-cb_min],'EdgeColor','k','FaceColor',[1 1 0]);
end
for k2 = 1:length(zacatek_chuze_c)
    rectangle('Position',[zacatek_chuze_c(k2),cb_min,konec_chuze_c(k2)-zacatek_chuze_c(k2),cb_max-cb_min],'EdgeColor','k','FaceColor',[1 0 1]);
end
plot(cass,kombo,'k');
title('Klasifikace pohybu','FontSize', 12)
xlabel('čas [s]','FontSize',10)
ylabel('lineární zrychlení [g]','FontSize',10')
legend('ay+az','Location','northeast')

%%vyhledání úseků ODPOČINKU
%uložení jejich počátečních a koncových souřadnic
Oo = length(index_oo);
zacatek_odpocinek = [];
konec_odpocinek = [];
%případ kdy je odpočinek pouze na počátku a konci záznamu
if Oo == 0
    zacatek_odpocinek(1) = min(cass);
    zacatek_odpocinek(2) = locs_c(end);
    konec_odpocinek(1) = locs_c(1);
    konec_odpocinek(2) = max(cass);
else
    zacatek_odpocinek(1) = min(cass);
    konec_odpocinek(1) = locs_c(1);
    for o = 1:Oo
        zacatek_odpocinek(o+1) = locs_c(index_oo(o));
        konec_odpocinek(o+1) = locs_c(index_oo(o)+1);
    end
    zacatek_odpocinek(length(zacatek_odpocinek)+1) = locs_c(end);
    konec_odpocinek(length(konec_odpocinek)+1) = max(cass);
end
%úprava vektorů a hodnot pro vypsání v textovém poli
zacatky = [zacatek_odpocinek zacatek_chuze_c zacatek_beh_c];
konce = [konec_odpocinek konec_chuze_c konec_beh_c];
druhy_pohybu = zeros(1,length(zacatky));
druhy_pohybu(length(zacatek_odpocinek)+1:length(zacatek_odpocinek)+length(zacatek_chuze_c)) = 1;
druhy_pohybu(length(zacatek_odpocinek)+length(zacatek_chuze_c)+1:length(zacatek_odpocinek)+length(zacatek_chuze_c)+length(zacatek_beh_c)) = 2;
[zacatky2,poradiz] = sort(zacatky);
[konce2,poradik] = sort(konce);
druhy_pohybu2 = druhy_pohybu(poradiz);

doba_celkem = [];
for i5 = 1:length(zacatky)
    doba_celkem(i5) = konce2(i5)-zacatky2(i5);
end
    
zacatky_t = zacatky2';  
konce_t = konce2';
doba_celkem_t = doba_celkem';
druhy_pohybu_t = druhy_pohybu2';

for i6 = 1:length(druhy_pohybu2)
    if druhy_pohybu2(i6) == 0
        druhy_text(i6) = {'Odpočinek'};
    elseif druhy_pohybu2(i6) == 1
        druhy_text(i6) = {'Chůze'};
    else
        druhy_text(i6) = {'Běh'};
    end
end

druhy_text = druhy_text';
doba_zaznamu = max(cass) - min(cass);

celkem_odpocinek = [];
celkem_chuze = [];
celkem_beh = [];
for i6 = 1:length(zacatek_odpocinek)
    celkem_odpocinek(i6) = konec_odpocinek(i6)-zacatek_odpocinek(i6);
end
celkem_odpocinek_sum = sum(celkem_odpocinek);
for i6 = 1:length(zacatek_chuze_c)
    celkem_chuze(i6) = konec_chuze_c(i6)-zacatek_chuze_c(i6);
end
celkem_chuze_sum = sum(celkem_chuze);
for i6 = 1:length(zacatek_beh_c)
    celkem_beh(i6) = konec_beh_c(i6)-zacatek_beh_c(i6);
end
celkem_beh_sum = sum(celkem_beh);

set(handles.text9,'String',zacatky_t);
set(handles.text10,'String',konce_t);
set(handles.text11,'String',doba_celkem_t);
%set(handles.text12,'String',druhy_pohybu_t);
set(handles.text12,'String',druhy_text);
set(handles.text16,'String',celkem_beh_sum);
set(handles.text17,'String',celkem_chuze_sum);
set(handles.text18,'String',celkem_odpocinek_sum);
set(handles.text19,'String',doba_zaznamu);

global gzacatky gkonce gdobacelkem gdruhytext
gzacatky = zacatky_t;
gkonce = konce_t;
gdobacelkem = doba_celkem_t;
gdruhytext = druhy_text;

% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
global gcass gaxf1mm gayf1mm gazf1mm
figure
plot(gcass,gaxf1mm,'r',gcass,gayf1mm,'g',gcass,gazf1mm,'b');
title('Data z akcelerometru','FontSize', 12)
xlabel('čas [s]','FontSize',10)
ylabel('lineární zrychlení [g]','FontSize',10')
legend('osa ax','osa ay','osa az','Location','NorthEast')
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
global gcass gcbmax gcbmin gkombo gzacch gzacb gkonch gkonb
figure
rectangle('Position',[min(gcass),gcbmin,gcass(end)-min(gcass),gcbmax-gcbmin],'EdgeColor','k','FaceColor',[1 1 1]);
hold on
for k = 1:length(gzacb)
    rectangle('Position',[gzacb(k),gcbmin,gkonb(k)-gzacb(k),gcbmax-gcbmin],'EdgeColor','k','FaceColor',[1 1 0]);
end
for k2 = 1:length(gzacch)
    rectangle('Position',[gzacch(k2),gcbmin,gkonch(k2)-gzacch(k2),gcbmax-gcbmin],'EdgeColor','k','FaceColor',[1 0 1]);
end
plot(gcass,gkombo,'k');
title('Klasifikace pohybu','FontSize', 12)
xlabel('čas [s]','FontSize',10)
ylabel('lineární zrychlení [g]','FontSize',10')
legend('ay+az','Location','northeast')
% hObject    handle to pushbutton5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in checkbox1.
function checkbox1_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
CheckBoxChecked(handles);
% Hint: get(hObject,'Value') returns toggle state of checkbox1


% --- Executes on button press in checkbox2.
function checkbox2_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

CheckBoxChecked(handles);

% Hint: get(hObject,'Value') returns toggle state of checkbox2

% --- Executes on button press in checkbox3.
function checkbox3_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
CheckBoxChecked(handles);
% Hint: get(hObject,'Value') returns toggle state of checkbox3

function CheckBoxChecked(handles)
global gcass gaxf1mm gayf1mm gazf1mm
  %cla('reset');  % Erase everything.
  chb1 = get(handles.checkbox1, 'value');
  chb2 = get(handles.checkbox2, 'value');
  chb3 = get(handles.checkbox3, 'value');
  if chb1 == 1 && chb2 == 1 && chb3 == 1
      axes(handles.axes1) 
      plot(gcass,gaxf1mm,'r',gcass,gayf1mm,'g',gcass,gazf1mm,'b')
      title('Data z akcelerometru','FontSize', 12)
      xlabel('čas [s]','FontSize',10)
      ylabel('lineární zrychlení [g]','FontSize',10')
      legend('osa ax','osa ay','osa az','Location','NorthEast')
     % Plot dataset 1
  elseif chb1 == 1 && chb2 == 1 && chb3 == 0
      axes(handles.axes1) 
      plot(gcass,gaxf1mm,'r',gcass,gayf1mm,'g')
      title('Data z akcelerometru','FontSize', 12)
      xlabel('čas [s]','FontSize',10)
      ylabel('lineární zrychlení [g]','FontSize',10')
      legend('osa ax','osa ay','Location','NorthEast')
  elseif chb1 == 1 && chb2 == 0 && chb3 == 1
      axes(handles.axes1) 
      plot(gcass,gaxf1mm,'r',gcass,gazf1mm,'b')
      title('Data z akcelerometru','FontSize', 12)
      xlabel('čas [s]','FontSize',10)
      ylabel('lineární zrychlení [g]','FontSize',10')
      legend('osa ax','osa az','Location','NorthEast')
  elseif chb1 == 0 && chb2 == 1 && chb3 == 1
      axes(handles.axes1) 
      plot(gcass,gayf1mm,'g',gcass,gazf1mm,'b')
      title('Data z akcelerometru','FontSize', 12)
      xlabel('čas [s]','FontSize',10)
      ylabel('lineární zrychlení [g]','FontSize',10')
      legend('osa ay','osa az','Location','NorthEast')
  elseif chb1 == 1 && chb2 == 0 && chb3 == 0
      axes(handles.axes1) 
      plot(gcass,gaxf1mm,'r')
      title('Data z akcelerometru','FontSize', 12)
      xlabel('čas [s]','FontSize',10)
      ylabel('lineární zrychlení [g]','FontSize',10')
      legend('osa ax','Location','NorthEast')
  elseif chb1 == 0 && chb2 == 1 && chb3 == 0
      axes(handles.axes1) 
      plot(gcass,gayf1mm,'g')
      title('Data z akcelerometru','FontSize', 12)
      xlabel('čas [s]','FontSize',10)
      ylabel('lineární zrychlení [g]','FontSize',10')
      legend('osa ay','Location','NorthEast')
  elseif chb1 == 0 && chb2 == 0 && chb3 == 1
      axes(handles.axes1) 
      plot(gcass,gazf1mm,'b')
      title('Data z akcelerometru','FontSize', 12)
      xlabel('čas [s]','FontSize',10)
      ylabel('lineární zrychlení [g]','FontSize',10')
      legend('osa az','Location','NorthEast')
  else
      cla(handles.axes1,'reset');
  end

      
%   end
%   if state2 == 1
%      axes(handles.axes1) 
%      plot(gcass,gayf1mm,'g')
%   end
%   if state3 == 1
%      axes(handles.axes1) 
%      plot(gcass,gazf1mm,'b')
%   end
  %axes(handles.axes1) 
% handles.chb1 = handles.chb1;
% handles.chb2 = handles.chb2;
% handles.chb3 = handles.chb3;
% if chb1 == 1 && chb2 == 1 && chb3 == 1
%     plot(cass,axf1mm,'r',cass,ayf1mm,'g',cass,azf1mm,'b');
% end
% if get(checkbox1,'Value') == 1 && get(checkbox2,'Value') == 1 && get(checkbox3,'Value') == 1
%     plot(cass,axf1mm,'r',cass,ayf1mm,'g',cass,azf1mm,'b');
%     title('Data z akcelerometru','FontSize', 12)
%     xlabel('čas [s]','FontSize',10)
%     ylabel('lineární zrychlení [g]','FontSize',10')
%     legend('osa ax','osa ay','osa az','Location','NorthEast')
% end



function edit9_Callback(hObject, eventdata, handles)
% hObject    handle to edit9 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit9 as text
%        str2double(get(hObject,'String')) returns contents of edit9 as a double


% --- Executes during object creation, after setting all properties.
function edit9_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit9 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
global gzacatky gkonce gdobacelkem gdruhytext
nazev = get(handles.edit9,'String');
tabulka = [];
tabulka = {'Od [s]','Do [s]','Doba celkem [s]','Druh pohybu'};
for g = 1:length(gzacatky)
    tabulka{g+1,1} = gzacatky(g);
    tabulka{g+1,2} = gkonce(g);
    tabulka{g+1,3} = gdobacelkem(g);
    if strcmp(gdruhytext(g),'Běh') == 1
        tabulka{g+1,4} = 'Beh';
    elseif strcmp(gdruhytext(g),'Chůze') == 1
        tabulka{g+1,4} = 'Chuze';
    else
        tabulka{g+1,4} = 'Odpocinek';
    end
end
nazev2 = [nazev,'.xls'];
xlswrite(nazev2,tabulka)

% hObject    handle to pushbutton6 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
