Date: Jun 24, 2013 6:33 AM
Author: Nasser Abbasi
Subject: Re: finding index of any element in a matrix

On 6/24/2013 5:13 AM, asif khan wrote:

>
> eg,R = rand(3,3)
>
> R =
>
> 0.4820 0.2262 0.2518
> 0.1206 0.3846 0.2904
> 0.5895 0.5830 0.6171
>
> I = find(R==0.6171)
>
> I =
>
> Empty matrix: 0-by-1
> that is the problem... is there any precision problem???
>


Yes. You should never really use .EQ. with floating points.

In addition, what you see on the screen is not the full number
any way.

EDU>> format short
EDU>> R=rand(2)
0.8491 0.6787
0.9340 0.7577

EDU>> find(R==0.7577)
Empty matrix: 0-by-1

Error using format
EDU>> R
0.849129305868777 0.678735154857773
0.933993247757551 0.757740130578333

To do an .EQ. on floating point (or any comparison, < or > etc..)
you should use the abs/epsilon method. This is discussed in
many places.

--Nasser