Широты и долготы ненулевых элементов сетки данных
[lat,lon] = findm(Z,R)
[lat,lon] = findm(latz,lonz,Z)
[lat,lon,val] = findm(...)
mat = findm(...)
[lat,lon] = findm(Z,R)
вычисляет широты и долготы ненулевых элементов обычной сетки данных, Z
R
может быть географический объект растровой привязки, вектор ссылки или матрица привязки.
Если R
географический объект растровой привязки, его RasterSize
свойство должно быть сопоставимо с size(Z)
.
Если R
вектор ссылки, это должно быть 1 3 с элементами:
[cells/degree northern_latitude_limit western_longitude_limit]
Если R
матрица привязки, это должно быть 3 2 и преобразовать растровые индексы строки и столбца к или от географических координат согласно:
[lon lat] = [row col 1] * R
Если R
матрица привязки, она должна задать (невращательный, нескошенный) отношение, в котором каждый столбец сетки данных падает вдоль меридиана и каждой строки падения вдоль параллели. Интерполяция ближайшего соседа используется по умолчанию. NaN возвращен для точек вне пределов сетки или для который lat
или lon
содержите NaN. Все углы находятся в модулях степеней.
[lat,lon] = findm(latz,lonz,Z)
возвращает широты и долготы ненулевых элементов определенной геолокацию сетки данных Z
, который является M на n логический или числовой массив. Обычно latz
и lonz
массивы долготы широты M на n, но latz
может быть вектор широты из длины M и lonz
может быть вектор долготы из длины N.
[lat,lon,val] = findm(...)
возвращает значения ненулевых элементов Z
, в дополнение к их местоположениям.
mat = findm(...)
возвращает один выходной параметр, where mat = [lat lon]
.
Эта функция работает в двух режимах: с обычной сеткой данных и с определенной геолокацию сеткой данных.
Сетка данных может быть результатом логической операции. Например, загрузите растровые данные о вертикальном изменении и географический объект ссылки ячеек. Затем найдите все местоположения с вертикальными изменениями больше, чем 5 500 метров.
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
Эти точки находятся в Гималаях. Найдите значения сетки в этих местоположениях с помощью geographicToDiscrete
и sub2ind
функции.
[row,col] = geographicToDiscrete(topo60cR,lat,lon); indx = sub2ind(size(topo60c),row,col); heights = topo60c(indx)
heights = 5559 5515 5523 5731