function [output] = fit_gauss(data)
% Tato funkce získá hodnoty parametrů pro vstupní data 
% s pomocí proložení gaussovským modelem
% vstup: data - vstupní data
% výstup: output - matice parametrů po proložení

output=zeros(size(data,1),size(data,2),size(data,3),5);

sx=size(data,1);
sy=size(data,2);
sz=size(data,3);

for i=1:sx
    for j=1:sy
        for k=1:sz
            D=squeeze(data(i,j,k,:));
            if(sum(abs(D))~=0)
            z = @(x,xdata)(xdata - x(2))./x(3);
            fun = @(x,xdata)(x(1).*exp(-z(x,xdata).^2./2)+x(4));
            % lognorm - log(t)
            pozice = find(double(D)==max(double(D)));
            maximum=(D(pozice));
            maximum=maximum(1);
            options = optimoptions('lsqcurvefit','FunctionTolerance',1e-8,'MaxFunctionEvaluations', 10e2,'MaxIterations',10e2); %'Display', 'off' 
            [output(i,j,k,1:4),output(i,j,k,5)] = lsqcurvefit(fun,double([maximum, pozice, 1, double(D(end))]),1:size(D,1),double(D(:))',[],[],options);
%             plot(squeeze(output(i,j,k,:)));
%             hold on
            end
        end       
    end
end

end



