Широты и долготы ненулевых элементов сетки данных
[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(...)
возвращает один выход, где mat = [lat lon]
.
Эта функция работает в двух режимах: с регулярной сеткой данных и с геолокированной сеткой данных.
Сетка данных может быть результатом логической операции. Для примера загрузите повышение растровые данные и географические камеры ссылки объект. Затем найдите все местоположения с повышениями более 5500 метров.
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