У меня есть XYZ-файл, разделенный табуляцией, который содержит 3 столбца, например,
586231.8 2525785.4 15.11
586215.1 2525785.8 14.6
586164.7 2525941 14.58
586199.4 2525857.8 15.22
586219.8 2525731 14.6
586242.2 2525829.2 14.41
Столбцы 1 и 2 - это координаты X и Y (в метрах UTM), а столбец 3 - это соответствующее значение Z наточка X, Y;например, высота (z) в точке задана как z(x,y)
Я могу прочитать в этом файле, используя dlmread()
, чтобы получить 3 переменные в рабочей области, например, X = 41322x1 double
, но я хотел бы создатьповерхность размером (m x n)
с использованием этих переменных.Как мне поступить об этом?
Исходя из комментариев ниже, я попытался использовать TriScatteredInterp (см. Команды ниже).Я продолжаю получать результат, показанный ниже (хотя, похоже, он получает часть моей поверхности):
Есть идеи, что вызывает этот результат?Я думаю, что проблема заключается в команде meshgrid
, хотя я не уверен, где (или почему).В настоящее время я добавляю следующий набор команд для вычисления приведенного выше числа (мои столбцы X и Y указаны в метрах, и я знаю, что размер моей сетки равен 8 м, следовательно, ti / tj повышается за 8 с):
F = TriScatteredInterp(x,y,z,'nearest');
ti = ((min(x)):8:(max(x)));
tj = ((min(y)):8:(max(y)));
[qx,qy] = meshgrid(ti,tj);
qz = F(qx,qy);
imagesc(qz) %produces the above figure^