function RES=LZWn(X,patternLength,similarityCoefficient,beginScale,endScale,typeOfEntropy,States,b);

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

stDev = std(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 - оброблений масив
    indexX = [1:i:m-i];
    Y = X(indexX);
    for j=1:i-1
        Y = Y + X(indexX+j);
    end
    Y = Y / i;
    [m1,n1] = size(Y);
    if (m1 == 1)
        Y = Y';
    end
    
    % обраховуємо значення ентропії для поточного масштабу
    %if (typeOfEntropy==1)
    %    vscalesTemp=ApEnOpt(Y,patternLength,stDev*similarityCoefficient);
    %else
    %    [vscalesTemp,t1,t2,t3]=sampen(Y,patternLength,stDev*similarityCoefficient,0,0);
    %end
    
    vscalesTemp=CalcLZ(Y,States,b);%LZMeasureComplexity(Y,patternLength,stDev*similarityCoefficient);
    vscales(index)=vscalesTemp;%(patternLength);
    index=index+1;
end

RES=[scales; vscales];

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