function c = kmeansmy(QRS,vstup_sig,vyberQRS,clus1,clus2,svod,metr,num,repl,drift,auto,fvz)

QRS = round(QRS);
switch vyberQRS
    case 1
       vzdalenostRR = zeros(1,length(QRS)-1);
       for i = 1:length(QRS)-1
           vzdalenostRR(i) = QRS(i+1)-QRS(i);
       end;
       vzdalenostRR = sum(vzdalenostRR)/length(vzdalenostRR);
       velikost_komplexu1 = round((vzdalenostRR/100)*clus1);
       velikost_komplexu2 = round((vzdalenostRR/100)*clus2);
    case 2
       velikost_komplexu1 = abs(round(clus1*(fvz/1000)));
       velikost_komplexu2 = abs(round(clus2*(fvz/1000)));
    case 3
        f = figure;
        plot(vstup_sig(svod,:));
        [velikost_komplexu, ~] = ginput(2);
        velikost_komplexu = sort(velikost_komplexu);
        plot(vstup_sig(svod,velikost_komplexu(1):velikost_komplexu(2)));
        [velikost_komplexu, ~] = ginput(3);
        delete(f);
        velikost_komplexu = sort(velikost_komplexu);
        velikost_komplexu1 = round(velikost_komplexu(2)-velikost_komplexu(1));
        velikost_komplexu2 = round(velikost_komplexu(3)-velikost_komplexu(2));
end;
j = 0;
prvni = 0;
posledni = 0;
for i = 1:length(QRS)
    pozice1 = QRS(i)-velikost_komplexu1;
    pozice2 = QRS(i)+velikost_komplexu2;
    if pozice1>0
        if pozice2<length(vstup_sig(svod,:))
            j = j+1;
            segmented(j,:) = vstup_sig(svod,pozice1:pozice2);
            if drift == 1
%                 figure; % zobraz
%                 plot(segmented(j,:)); % zobraz
%                 hold on; % zobraz
                S = fft(segmented(j,:));
                S(1) = 0;
                segmented(j,:) = ifft(S);
%                 plot(segmented(j,:),'r'); % zobraz
%                 hold off; % zobraz
            end;
        end;
    end;
    if pozice1<0
        prvni = prvni + 1;
    end;
    if pozice2>length(vstup_sig(svod,:))
        posledni = posledni + 1;
    end;
end

opts = statset('Display','iter');
if auto == 1 % volani gap statistics a nastaveni, spusteni kmeans
    veli = size(segmented);
    num_clusters = 1:1:veli(1); % auto k settings
    num_reference_bootstraps = 10; % auto k settings - pocet iteraci gap statistic
    compactness_as_dispersion = 1; % auto k settings
    [opt_k,~] = gap_statistics(segmented',num_clusters,...
        num_reference_bootstraps,compactness_as_dispersion);
    [c,ctrs] = kmeans(segmented,opt_k,...
                    'Distance',metr,'Replicates',repl,'Options',opts);
%      'Distance',metr,'Replicates',repl,'Options',opts,'emptyaction','drop');           
elseif auto == 0
[c,ctrs] = kmeans(segmented,num,...
    'Distance',metr,'Replicates',repl,'Options',opts);
% 'Distance',metr,'Replicates',repl,'Options',opts,'emptyaction','drop');
end;



figure('Name','Zobrazeni shluku');
for i = 1:num
plot(segmented(c==i),segmented(c==i),'.','MarkerSize',12) %zobrazeni tecek
hold all
plot(ctrs(:,1),ctrs(:,2),'kx',... % zobrazeni centroid krizek
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',... % zobrazeni kolecka
     'MarkerSize',12,'LineWidth',2)
end;
% title('Shluky');
xlabel('Vzdálenost X [-]');
ylabel('Vzdálenost Y [-]');
if prvni > 0
    prvni = zeros(prvni,1);
    c = [prvni; c];
end;
if posledni > 0
    posledni = zeros(posledni,1);
    c = [c; posledni];
end;
% figure;
% plot(vstup_sig(svod,:));
% ylabel('Amplituda [µV]');
% xlabel('Vzorky [-]');