Latitudes and longitudes of nonzero data grid elements
[lat,lon] = findm(Z,R)
[lat,lon] = findm(latz,lonz,Z)
[lat,lon,val] = findm(...)
mat = findm(...)
[lat,lon] = findm(Z,R) computes the latitudes and longitudes of the nonzero elements of a regular data grid, Z. R can be a geographic raster reference object, a referencing vector, or a referencing matrix.
If R is a geographic raster reference object, its RasterSize property must be consistent with size(Z).
If R is a referencing vector, it must be a 1-by-3 with elements:
[cells/degree northern_latitude_limit western_longitude_limit]
If R is a referencing matrix, it must be 3-by-2 and transform raster row and column indices to or from geographic coordinates according to:
[lon lat] = [row col 1] * R
If R is a referencing matrix, it must define a (non-rotational, non-skewed) relationship in which each column of the data grid falls along a meridian and each row falls along a parallel. Nearest-neighbor interpolation is used by default. NaN is returned for points outside the grid limits or for which lat or lon contain NaN. All angles are in units of degrees.
[lat,lon] = findm(latz,lonz,Z) returns the latitudes and longitudes of the nonzero elements of a geolocated data grid Z, which is an M-by-N logical or numeric array. Typically latz and lonz are M-by-N latitude-longitude arrays, but latz may be a latitude vector of length M and lonz may be a longitude vector of length N.
This function works in two modes: with a regular data grid and with a geolocated data grid.
The data grid can be the result of a logical operation. For instance, you can find all locations with elevations greater than 5500 meters.
load topo [lat, lon] = findm((topo>5500),topolegend); [lat lon] ans = 34.5000 79.5000 34.5000 80.5000 30.5000 84.5000 28.5000 86.5000
These points are in the Himalayas. Find the grid values at these locations with setpostn:
heights = topo(setpostn(topo,topolegend,lat,lon)) heights = 5559 5515 5523 5731
Use a regular data grid to retrieve the elevations from setpostn.