function sc=ApEnSimCoeff(x,len,st)
% Calculate similarity coefficient for a time serie:
%
%    Допоміжна функція; використовується в ApEn.
%
%    sc=ApEnSimCoeff(x,len,st)
%    Вхідні дані:
%       x      - вектор-стовпчик
%       len    - довжина паттерна
%       st     - значення критерія подібності
%    Вихідні дані:
%       sc     - значення коефіцієнта подібності
%
%    Джерела:
%       Moody G. Approximate Entropy (ApEn) // http://www.physionet.org/
%
% (c) Сердюк О., 19.11.2006

[m,n]=size(x);                          % визначаємо розміри вхідного вектора

% створюємо матрицю, де будуть записуватись результати порівняння векторів
nVec=m-len+1;                           % кількість векторів для порівняння
mCmp = zeros(nVec,nVec);

% проходимо по кожному паттерну і порівнюємо його з іншими
for i=1:nVec
    for j=i:nVec
        if (sum(abs(x(i:i+len-1)-x(j:j+len-1))<st)==len) mCmp(i,j)=1; mCmp(j,i)=mCmp(i,j); end        
    end
end

similar=sum(sum(mCmp==1));              % кількість подібних векторів
all=nVec*nVec;                          % загальна кількість векторів

% обраховуємо значення коефіцієнта подібності
sc=similar/all;

clear m n nVec mCmp i j similar all;