I've a vector with 20000 elements. taux1=[0.01 0.02 ... 200]. If I type p=find(taux1==0.02), it returns p=2. Ok! If I type max(taux1), it returns ans=200.0000. Ok! But, if p=find(taux1==200), the answer is p=Empty matrix: 1-by-0. Others "round" values have shown the same answer, even if the entry have consider decimals (for example, taux1==200.0000). However, if I type p=find(taux1==max(taux1)), it returns p=20000. What may be happening? Thanks!

 Accepted Answer

Walter Roberson
Walter Roberson on 29 Sep 2016

0 votes

Floating point roundoff. Those values only look like they are integers.

3 Comments

Thank you, Walter. Do you suggest any modification in my "find" command? I tried the "areEssentiallyEqual...", but it didn't work within this command...
You can use ismembertol() . The first output is a logical vector; the second output is indices.
Thanks!

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!