Using ismember with some margin

2 visualizaciones (últimos 30 días)
Reuben Addison
Reuben Addison el 3 de Mayo de 2023
Editada: Jon el 3 de Mayo de 2023
I asked a question yesterday and I got some good answers but there was a twist to my problem want to use a subset of number to find the index in a bigger set, my smaller set has some margin of error +/- 0.001
eg bigger set BS = [2.33, 4.551, 5.88, 3.98, 4.661, 7.98, 2.331, 9.55]
smaller set SS = [4.55 4.66 7.99]
I want to use the smaller set (SS) to pick the index of its location in the bigger set (BS)
I tried using find, ismembertol but not working well
I will be happy to figure this out
  1 comentario
Jon
Jon el 3 de Mayo de 2023
Would be better to preserve the history and responses so far to continue your original post with this as a comment, rather than opening up a new question.

Iniciar sesión para comentar.

Respuestas (2)

Walter Roberson
Walter Roberson el 3 de Mayo de 2023
ismembertol by default uses relative tolerances. To use absolute tolerance with it you need to set the relative portion to 1 and use one of the named options to set the margin to the absolute value you want.
  1 comentario
Walter Roberson
Walter Roberson el 3 de Mayo de 2023
Sorry details were slightly wrong, see https://www.mathworks.com/help/matlab/ref/ismembertol.html#bup2c1a

Iniciar sesión para comentar.


Jon
Jon el 3 de Mayo de 2023
Editada: Jon el 3 de Mayo de 2023
You can use ismembertol for this
SSnoisy = SS + randn(size(SS))*0.01
idx = find(ismembertol(BS,SSnoisy,0.05))

Categorías

Más información sobre Graphics Object Programming en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by