how to find a float number

I have a data (saved as double), as in the attache file. I need to find for example if a certain float number (for ex. -0.334) exist or no.
find(y7==-0.3340)
but because the nubers actully exist as -0.3440099999999 or sth like that, I can't find.
I have tried to change the format, but it did'nt solve the problem.
Any suggestions??

 Accepted Answer

per isakson
per isakson on 20 Sep 2021
Edited: per isakson on 20 Sep 2021
find( abs( y7 -(-0.3340) ) < tol )
You choose tol. See eps - Floating-point relative accuracy

More Answers (1)

[is_there, idx] = ismembertol(-0.3340, y7) %options allow you to control tolerances
y7(idx)
Also,
[~, idx] = min(abs(y7(:) - (-0.3340)));
y7(idx)
will show you the y7 that is closest to -0.3340, even if it is not very close. Whereas the ismembertol() will only return results if the value is within tolerance

Asked:

on 20 Sep 2021

Commented:

on 20 Sep 2021

Community Treasure Hunt

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

Start Hunting!