# How to find a value in a matrix

6 views (last 30 days)
Honey on 27 Nov 2021
Commented: Honey on 28 Nov 2021
Hi
I have a matrix of latitude and another matrix of longtitude for the location of an area pixel to pixel. I have a location value (longtitue and latitude) that I want to find the position of the pixels which this value will be located in. How can I find this?
Look at below to the exemplary matrix of Latitude.
There is another matrix like this for longtitudeThe point that I am looking for is Latitude=35.6886 and Longtitude= 53.6113
##### 2 CommentsShowHide 1 older comment
Honey on 27 Nov 2021
I tried this but it doesnt work.

DGM on 27 Nov 2021
Consider the simple example:
% two orthogonal grids
[x y] = meshgrid(linspace(0,1,10))
x = 10×10
0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000
y = 10×10
0 0 0 0 0 0 0 0 0 0 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.2222 0.2222 0.2222 0.2222 0.2222 0.2222 0.2222 0.2222 0.2222 0.2222 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.3333 0.4444 0.4444 0.4444 0.4444 0.4444 0.4444 0.4444 0.4444 0.4444 0.4444 0.5556 0.5556 0.5556 0.5556 0.5556 0.5556 0.5556 0.5556 0.5556 0.5556 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.6667 0.7778 0.7778 0.7778 0.7778 0.7778 0.7778 0.7778 0.7778 0.7778 0.7778 0.8889 0.8889 0.8889 0.8889 0.8889 0.8889 0.8889 0.8889 0.8889 0.8889 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
% the point you're trying to locate
targetpt = [0.3333 0.5555]; % [x y]
tol = 0.001; % tolerance
% the row and column where the point is found
[tprow tpcol] = find(abs(x-targetpt(1))<tol & abs(y-targetpt(2))<tol)
tprow = 6
tpcol = 4
Don't expect simple equality tests to work with floating point numbers like this. You'll have to test matches to within some defined tolerance.
Honey on 28 Nov 2021
Great ! It works and now with 'find()', I can have the pixel numbers too

R2020b

### Community Treasure Hunt

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

Start Hunting!