Removing far points between vectors

Hello, i have 2 very large vectors which represent points in a 3d image, im interested in removing all points from the first vector that are farther then 'distance' from the second vector. for example: let A=(1 1 1, 10 10 10, 20 20 20) and b be (1 1 1, 2 2 2, 3 3 3), and distance be 5, only point 1 1 1 in a is closer then 5 to a certain point in b therefore the result should be C=(1 1 1)

2 comentarios

Jan
Jan el 15 de Mayo de 2017
Editada: Jan el 15 de Mayo de 2017
It is a benefit to use standard Matlab syntax in this forum, although we can guess how the matrix A might look like.
The distance between [1,1,1] and [3,3,3] is less then 5 also. What exactly does "to a certain point" mean here?
Daniel ziv
Daniel ziv el 15 de Mayo de 2017
im sorry about my matlab ileteracy, certain point means any point. like the example if in the example b would also have a point (9,9,9), then the distance would be less then 5 and the point 10 10 10 in A would also be valid and C=[1 1 1; 10 10 10;]

Iniciar sesión para comentar.

 Respuesta aceptada

KL
KL el 15 de Mayo de 2017
Editada: KL el 15 de Mayo de 2017
A=[1 1 1; 10 10 10; 20 20 20]
B = [1 1 1; 2 2 2; 3 3 3]
C = A(sqrt(sum((A-B).^2,2))<=5,:) %edited

3 comentarios

Jan
Jan el 15 de Mayo de 2017
I assume you mean:
C = A(norm(A-B) < 5, :)
But this works only, if A and B have the same size. The question is not clear in this point.
Daniel ziv
Daniel ziv el 15 de Mayo de 2017
im sorry A and B do not have the same size
KL
KL el 15 de Mayo de 2017
Editada: KL el 15 de Mayo de 2017
As Jan says, the above works only for the matrices of same size. If you want to compare matrices of different sizes and with all the elements in matrix B, then use the following one.
Arep = kron(A,ones(size(B,1),1));
Brep = repmat(B,size(A,1),1);
dAB = sqrt(sum((Arep-Brep).^2,2));
d = mean(reshape(dAB,fliplr(size(A))))
C = A(d<=5,:)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 15 de Mayo de 2017

Editada:

KL
el 15 de Mayo de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by