Main Content


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. Specify R as a GeographicCellsReference or GeographicPostingsReference object. The RasterSize property of R must be consistent with size(Z).

[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.

[lat,lon,val] = findm(...) returns the values of the nonzero elements of Z, in addition to their locations.

mat = findm(...) returns a single output, where mat = [lat lon].

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 example, load elevation raster data and a geographic cells reference object. Then, find all locations with elevations greater than 5500 meters.

load topo60c
[lat,lon] = findm((topo60c > 5500),topo60cR);
[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 using the geographicToDiscrete and sub2ind functions.

[row,col] = geographicToDiscrete(topo60cR,lat,lon);
indx = sub2ind(size(topo60c),row,col);
heights = topo60c(indx)
heights =

Version History

Introduced before R2006a

expand all