کد اولیه نیز برای فلوچارت اصلی بصورت زیر اصلاح شده است که برای داده های کم حجم جواب خوبی ارائه می دهد. لازم به یادآوری است که محاسبات برای شبکه منظم سه بعدی از داده ها است.
Flowchart.jpg
%a:a matrices with large dimension
k=0;
xmax=max(a(:,1));
ymax=max(a(:,2));
zmax=max(a(:,3));
xmin=min(a(:,1));
ymin=min(a(:,2));
zmin=min(a(:,3));
hmax=(((xmax-xmin)^2)+((ymax-ymin)^2)+((zmax-zmin)^2))^0.5;
h=zeros(size(a,1),size(a,2)-2);
for i=1:size(a,1)-1
for j=i+1:size(a,1)
x=a(i,1)-a(j,1);
y=a(i,2)-a(j,2);
z=a(i,3)-a(j,3);
if ((x^2)+(y^2)+(z^2))^(1/2)<=((hmax)/2);
k=k+1;
h(k,1)=((x^2)+(y^2)+(z^2))^(1/2);
h(k,2:end)=((a(i,4:end)-a(j,4:end)).^2);
end
end
end
u=unique(h(:,1));
c=zeros(size(u,1),size(h,2));
for i=1:numel(u)
c(i,:)=[u(i,1) sum(h(h(:,1)==u(i,1),2:end),1)];
end
%%%%%%%%%%%%%%%%%%%%%%%%%
countOfu = hist(h(:,1),u);
b = [u countOfu'];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
g=zeros(size(c));
for i=1:size(b,1)
g(i,:)=[c(i,1) (c(i,2:end))./(2*b(i,2))];
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
plot(g(:,1),g(:,2:end))
set(gca,'XTick',g(:,1))
title('Realizations Variogram');
xlabel('Distance');
ylabel('Variogram Value');