باسلام دوستان عزیز، کد زیر رو واسه تعیین حالت های مختلف فواصل نقاط نوشته شده است (هرچند ماتریس دادهها بصورت تصادفی تعیین شده است که جهت ارائه مثال می باشد)ولی میخواهیم فاصله نقاطی که نسبت به هم محاسبه شده اند بار دوم محاسبه نشود. به عبارت دیگر اگر فاصله دو نقطه b از a باشد h آنگاه فاصله a تا b نیز h خواهد بود که ما نمیخواهیم هر دو ثبت گردد و تنها یک مورد کافی است. همچنین فاصله ها حداکثر تا نصف محدوده مورد بررسی قابل قبول می باشد. درضمن هرگونه پیشنهاد دوستان برای بهبود سرعت اجرا و سایر موارد ارزشمند خواهد بود.

a=rand(10000,103);
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;
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);
while ((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,4:end)=(a(i,4:end)-a(j,4:end)).^2;
end
end
end