Borrar filtros
Borrar filtros

Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Select and Save the points that have 3 neighbors exactly 1 unit of distance away.

3 visualizaciones (últimos 30 días)
I am trying to select and save points to an array. I want to get all the points that have 3 points exaclty 1 unit away. I have set up a matrix that contains all the distance values between the points, but I am struggling to get points that meet the criteria. My code below is below. Thanks in advance.
load('A.mat');
x = A(:, 1);
y = A(:, 2);
z = A(:, 3);
SizeofA = size(A,1);
dist1a = nan(numel(x));
proximity = 1;
for i = 1:SizeofA
for j = 1:(i-1)
dist1a(i,j) = sqrt((x(i)-x(j)).^2 + (y(i)-y(j)).^2 + (z(i)-z(j)).^2);
dist1a(j,i) = dist1a(i,j);
end
end
i2keep = min(dist1a) == proximity && histc(dist1a)> 1;
keep_x1 = x(i2keep);
keep_y1 = y(i2keep);
keep_z1 = z(i2keep);
B = [keep_x1, keep_y1, keep_z1];
  1 comentario
James Peach
James Peach el 23 de Sept. de 2020
Id like to do something along the lines of this but by row instead of all at once.
https://www.mathworks.com/matlabcentral/answers/142281-count-the-number-of-times-a-value-occurs-in-a-specific-of-an-array

Respuestas (1)

sushanth govinahallisathyanarayana
sushanth govinahallisathyanarayana el 22 de Sept. de 2020
You could loop through the points and obtain a distance matrix dist
for i=1:size(A,1)
dist(:,i)=sum((A-A(i,:)).^2)
end
thr=1e-5; % example
dist_th=sum(abs(dist-1)<=thr);
% thresholding distances which are nearly exactly one, and finding the number of points that obey it for each point. The threshold of 1e-5 is so that points which are not exactly one unit away, but are 0.99999 units away will be included.
neighbour_pts=A(dist_th==3,:) % finds points that have 3 such neighbours
Hope this helps.
  1 comentario
James Peach
James Peach el 23 de Sept. de 2020
I already have a distance matrix but I am trying to use logical statements to grab all the points that have 3 or more 1 values inside the rows.

La pregunta está cerrada.

Productos


Versión

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by