Documentation Center

  • Trial Software
  • Product Updates

findm

Latitudes and longitudes of nonzero data grid elements

Syntax

[lat,lon] = findm(Z,R)
[lat,lon] = findm(latz,lonz,Z)
[lat,lon,val] = findm(...)
mat = findm(...)

Description

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

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

Examples

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.

See Also

Was this topic helpful?