У меня есть ряд объектов, у каждого из которых есть три матрицы расстояния между собственными точками (x1-x1, x1-x2, x1-x3 ...; x2-x1, x2-x2, x3-x2 ...) также с y и z.
Я хочу найти как можно больше соседних точек, предполагая, что вращение не является проблемой.
Я что-то пробовал. Поскольку Matlab должен легко работать с матрицами, я уверен, что что-то громоздко, но я не знаю, как это исправить. Для каждого объекта и его зеркала, а также для каждого перевода по каждой оси существует сценарий xyz: (x1, y1, z1; x2, y2, z2; ...) Так что я перевожу и отражаю один объект миллион раз.
for m=1:object1
for n=1:object2
for i=1:NumRows
for j=1:NumRows2
d_x(m,n,i,j)=obj(m).xyz(i,1)-obj(n).xyz(j,1);
d_y(m,n,i,j)=obj(m).xyz(i,2)-obj(n).xyz(j,2);
d_z(m,n,i,j)=obj(m).xyz(i,3)-obj(n).xyz(j,3);
d_r(m,n,i,j)=sqrt(d_x(m,n,i,j)*d_x(m,n,i,j)+d_y(m,n,i,j)*d_y(m,n,i,j)+d_z(m,n,i,j)*d_z(m,n,i,j));
if d_r(m,n,i,j)>=0 & d_r(m,n,i,j)<1.2
d_r(m,n,i,j)=1.2-d_r(m,n,i,j);
else
d_r(m,n,i,j)=0;
end
sy(m,n)=sy(m,n)+d_r(m,n,i,j);
end
end
end
end