extract matrix value based on lat lon data

I have three matrices: 1) [m n] latitude 2) [m n] longitude 3) [m n] simulated values
I need to extract the simulated values by a given bounding box of latitude and longitude and create a new matrix [a b] for several time steps.
I have tried find, ind2sub, sub2ind, intersect, though none of those functions are quite what I need.
Please help!

 采纳的回答

I think you want inpolygon. To get the indices of all data inside the polygon 30 to 40 degrees north and 20 to 10 degrees west, you'd do
ind = inpolygon(lon,lat,[-20 -10],[30 40]);
Then your data measurements in that polygon are: vals(ind)
There's a Mapping Toolbox function called ingeoquad that does the same thing, but inpolygon does it just as well and doesn't require the Mapping Toolbox.

2 个评论

Thank you! This works perfectly for my needs.
Is there something similar for a circle, where I can values from a specific grid point, and all data within radius of 500km?

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Geographic Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by