How can I find the index of a point in an array?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Agustin
am 11 Jul. 2017
Kommentiert: Star Strider
am 12 Jul. 2017
Hi! I have the following point: tmp = [-119.3 1042.5] and I want the index of this point in a grid. I have two separate grids, xdata and ydata and I'm trying to find the indexes, ipix and jpix. When I'm looking for ipix using
ipix = find(xdata == tmp(1,1))
I get the following:
ipix =
Empty matrix: 0-by-1
The numbers on the xdata and ydata grids are the form -1.193846913204592e+02 and when I write
ipix = find(xdata == -1.193846913204592e+02)
I get
ipix =
71361
which makes no sense. Can somebody help me with this? What I need is to find the index of the given point so I can find the displacement of the point in different images.
Thank you;
0 Kommentare
Akzeptierte Antwort
Star Strider
am 11 Jul. 2017
This is due to floating-point approximation error. You have to search within a range of tolerances.
Try something like this:
tol = 0.001;
[xrow,xcol] = find((xdata >= tmp(1,1)-tol) & (xdata <= tmp(1,1)+tol));
[yrow,ycol] = find((xdata >= tmp(1,2)-tol) & (xdata <= tmp(1,2)+tol));
4 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!