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!

 Akzeptierte Antwort

Chad Greene
Chad Greene am 10 Nov. 2015

0 Stimmen

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 Kommentare

Angela Bowman
Angela Bowman am 10 Nov. 2015
Thank you! This works perfectly for my needs.
Belinda Finlay
Belinda Finlay am 21 Feb. 2020
Is there something similar for a circle, where I can values from a specific grid point, and all data within radius of 500km?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by