intersect misses common elements of 2 matrices

2 visualizaciones (últimos 30 días)
Jack
Jack el 16 de Dic. de 2016
Editada: James Tursa el 17 de Dic. de 2016
I've been using intersect to identify the common elements of two 2D grids. However, when I try it against the following code, it misses some of the common elements.
[x1Grid_1,x2Grid_1] = meshgrid(-70:0.5:70, 1:0.05:17);
xGrid_1 = [x1Grid_1(:), x2Grid_1(:)];
[x1Grid_2,x2Grid_2] = meshgrid(-56:0.5:35, 6:0.05:16);
xGrid_2 = [x1Grid_2(:), x2Grid_2(:)];
[c1,c2,c3] = intersect(xGrid_1,xGrid_2,'rows');
The vector xGrid_2 should be made entirely of elements from xGrid_1. xGrid_2 has 36783 rows, but after running intersect, vectors c1-c3 only have 30195 elements, meaning they miss some of the common elements. I can't understand why this would be happening. Any input would be helpful.
I'm using 2016a.
Thanks, Jack
  1 comentario
John BG
John BG el 16 de Dic. de 2016
what are you after, the line intersection of 2 planes?

Iniciar sesión para comentar.

Respuesta aceptada

Image Analyst
Image Analyst el 16 de Dic. de 2016
I think this might be a case of floating point numbers, arrived at via different operations, not matching when you think they should. You need to check within a tolerance. See the FAQ: http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F
  3 comentarios
Image Analyst
Image Analyst el 16 de Dic. de 2016
True, as are all negative powers of 2: 2^(-1) and 2^(-2), etc. (0.5, 0.25, 0.125, etc.).
James Tursa
James Tursa el 17 de Dic. de 2016
Editada: James Tursa el 17 de Dic. de 2016
Or if you are on a Windows system where the underlying sprintf algorithm is different, you can use num2strexact instead:
>> num2strexact(0.05)
ans =
5.000000000000000277555756156289135105907917022705078125e-2

Iniciar sesión para comentar.

Más respuestas (1)

Jack
Jack el 16 de Dic. de 2016
Rounding it did the trick - I just used
xGrid_1 = round(xGrid_1*100)/100;
xGrid_2 = round(xGrid_2*100)/100;
to cutoff the decimals after 0.01. That made it work.
Thanks

Categorías

Más información sobre Get Started with Phased Array System Toolbox en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by