%% БнЬлхуз БллзлерЯдсбузт УхмвЬнфщн Чщсйкпэ Узмейбкпэ Рспфэрпх
% *ЦбЯдщн КхсйбкЯдзт* 
%
% ФмЮмб ГещгсбцЯбт РбнерйуфзмЯпх БйгбЯпх

%% ЕйубгщгЮ дедпмЭнщн
load simEvents.mat
who
evInfo

%% Брейкьнйуз иЭуещн уфп бсчеЯп evClus
plot(evClus(:,1),evClus(:,2),'*');
title('Clustered point pattern');

%% РбсЬдейгмб 7 иЭуещн брь фп бсчеЯп evClus
N = 7;
xy = evClus(1:N,1:2)
plot(xy(:,1),xy(:,2),'*');
axis([0 100 0 100]);
title('РбсЬдейгмб 7 иЭуещн ухмвЬнфщн');
%text(xy(:,1),xy(:,2),char(num2str((1:N)')));

%% РЯнбкбт ЕхклеЯдйщн брпуфЬуещн
D = coords2dist(xy)

%% БрпуфЬуейт мефбоэ ухмвЬнфщн кбй рлзуйеуфЭсщн гейфьнщн
Out = coords2distnn(xy)
% 1з уфЮлз -> брпуфЬуейт рлзуйеуфЭсщн гейфьнщн
% 2з уфЮлз -> рлзуйЭуфеспй геЯфпнет 
distNN = Out(:,1);

%% МЭуз брьуфбуз мефбоэ рлзуйеуфЭсщн гейфьнщн
meanDistNN = mean(distNN)

%% Уэгксйуз ме фб брпфелЭумбфб фзт енфплЮт coords2avenndist
coords2avenndist(xy)

%% УхнЬсфзуз биспйуфйкЮт кбфбнпмЮт брпуфЬуещн рлзуйеуфЭсщн гейфьнщн
[fcumul,distNNsort] = ecdf(distNN);
% fcumul -> биспйуфйкь рпупуфь
% distNNsort -> фймЭт брьуфбузт уе бэопхуб дйЬфбоз
disp( [distNNsort fcumul] )
stairs(distNNsort,fcumul)
figure
cdfplot(distNN) % фб рбсбрЬнщ ме мЯб енфплЮ, чщсЯт output

%% Уэгксйуз ме фзн емрейсйкЮ ухнЬсфзуз G
g = ghat(xy,[])
%% 
% ьрпх [] дзлюней бхфьмбфз ерйлпгЮ брпуфЬуещн
% 1з уфЮлз -> брпуфЬуейт рлзуйеуфЭсщн гейфьнщн уе бэопхуб дйЬфбоз
% 2з уфЮлз -> биспйуфйкЬ рпупуфЬ брпуфЬуещн
plot(g(:,1),g(:,2),'b+')
%ylim([0 1])
xlabel('брпуфЬуейт рлзуйЭуфесщн гейфьнщн')
ylabel('биспйуфйкЬ рпупуфЬ')
title('ЕмрейсйкЮ ухнЬсфзуз G');

%% ЕмрейсйкЮ ухнЬсфзуз К
k = khat(xy,100*100,[])
%%
% 100*100 = емвбдьн фзт ресйпчЮт мелЭфзт
% 1з уфЮлз -> брпуфЬуейт мефбоэ ухмвЬнфщн уе бэопхуб дйЬфбоз
% 2з уфЮлз -> биспйуфйкЬ рпупуфЬ брпуфЬуещн
plot(k(:,1),k(:,2),'b+')
xlabel('брпуфЬуейт')
ylabel('биспйуфйкь рпупуфь ерЯ емвбдьн')
title('ЕмрейсйкЮ ухнЬсфзуз К')

%% УхнЭчейб уе ьлб фб дедпмЭнб
subplot(1,3,1)
plot(evClus(:,1),evClus(:,2),'*')
title('Clustered')
axis equal square
subplot(1,3,2)
plot(evRand(:,1),evRand(:,2),'*')
title('Random')
axis equal square
subplot(1,3,3)
plot(evStrat(:,1),evStrat(:,2),'*')
title('Stratified')
axis equal square

%% МЭуз брьуфбуз рлзуйеуфЭсщн гейфьнщн
mC = coords2avenndist(evClus);
mR = coords2avenndist(evRand);
mS = coords2avenndist(evStrat);
disp( [mC mR mS] )

%% ЕмрейсйкЮ ухнЬсфзуз G
gC = ghat(evClus,[]);
gR = ghat(evRand,[]);
gS = ghat(evStrat,[]);
figure
plot(gC(:,1),gC(:,2),'b+',gR(:,1),gR(:,2),'ro',gS(:,1),gS(:,2),'k*')
legend('Clustered','Random','Stratified')
%legend('Location','SouthEast')

%% ЕмресйкЮ ухнЬсфзуз К
BoundBox = [0 100; 0 100];
kC = khat(evClus,100*100,[]);
kR = khat(evRand,100*100,[]);
kS = khat(evStrat,100*100,[]);
plot(kC(:,1),kC(:,2),'b+',kR(:,1),kR(:,2),'ro',kS(:,1),kS(:,2),'k*')
legend('Clustered','Random','Stratified')
legend('Location','SouthEast')
%xlim([0 30])