How do I find the indices of the value of my matrix?

1 view (last 30 days)
How can I find the indices and exactly position of the value of the attached file. For example find index of value = -69.19 from the attached file.
Thanks

Accepted Answer

Stephen
Stephen on 16 Dec 2019
The answer depends entirely on how you define "equals" for floating point numbers:
>> [R,C] = find(abs(XX - -69.19)<1e-4)
R = []
C = []
>> [R,C] = find(abs(XX - -69.19)<1e-3)
R = 25
C = 124
>> [R,C] = find(abs(XX - -69.19)<1e-2)
R =
3
6
10
14
17
18
21
25
29
32
C =
108
110
113
116
118
119
121
124
127
129

More Answers (5)

KALYAN ACHARJYA
KALYAN ACHARJYA on 16 Dec 2019
Edited: KALYAN ACHARJYA on 16 Dec 2019
Load the mat file, say as data variable
idx=find(data==-69.19)
Please read about floating number precision (Must)
Example:
>> A=[1 -69.19 3.5 10];
>> idx=find(A==-69.19)
idx =
2
  1 Comment
Stephen
Stephen on 16 Dec 2019
This is not robust and does not work for the provided value:
>> any(XX(:) == -69.19)
ans = 0

Sign in to comment.


Farshid Daryabor
Farshid Daryabor on 16 Dec 2019
the commend tried before does not work,
idx=find(XX == -69.19);
idx = []

Farshid Daryabor
Farshid Daryabor on 16 Dec 2019
I actually looking for an individual index (idx) for the corresponding value, as same for the latitude (idy). by the finding the indices I want to find a data as arranged based on the lon and lat,
data = var(idx,idy);

Farshid Daryabor
Farshid Daryabor on 16 Dec 2019
Dear Stephen,
the second one is exactly what I am looking for. It's possible explaine why abs(XX - (-69.19)) should less than (1e-n), and how is defined 'n'
[R,C] = find(abs(XX - -69.19)<1e-3)
R = 25
C = 124

Farshid Daryabor
Farshid Daryabor on 16 Dec 2019
the problem is when I want to find the certain variable from the matrix arranged based on the longitude and latitude, how can I find it by having the corresponding indices
Data=Data(y,x)

Community Treasure Hunt

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

Start Hunting!