function RES=MSEn(X,patternLength,similarityCoefficient,beginScale,endScale,typeOfEntropy);

% X повинен бути вектор-стовпчиком
[m,n]=size(X);
if (m<n) X=X'; end
% повинен бути лише один стовпчик
X=X(:,1); [m,n]=size(X);

% обчислюємо значення масштабів та готуємо масив для результату
scales=beginScale:endScale;
vscales=scales; vscales(:,:)=0;

index=1;
% проходимо по кожному масштабу
for i=beginScale:endScale
    rows=m-i+1;                         % знаходимо кількість точок масиву Y
    Y=X(1:rows);                        % створюємо масив Y
    for j=2:i
        Y=Y+X(j:rows+j-1);
    end
    Y=Y/i;                              % в Y - оброблений масив
    
    % обраховуємо значення ентропії для поточного масштабу
    if (typeOfEntropy==1)
        vscalesTemp=ApEnOpt(Y,patternLength,similarityCoefficient);
    else
        [vscalesTemp,t1,t2,t3]=sampen(Y,patternLength,similarityCoefficient);
    end
    vscales(index)=vscalesTemp(patternLength);
    index=index+1;
end

RES=[scales; vscales];

clear m n scales vscales index i rows j Y vscalesTemp;
    