exponenta event banner

griddatan

Интерполяция N-D разрозненных данных

Описание

пример

vq = griddatan(x,v,xq) подгоняет гиперповерхность формы v = f (x) к точкам выборкиx со значениями v. griddatan функция интерполирует поверхность в точках запроса, указанных xq и возвращает интерполированные значения, vq. Поверхность всегда проходит через точки данных, определенные x и v.

пример

vq = griddatan(x,v,xq,method) задает метод интерполяции, используемый для вычисления vq. Опции: 'linear' или 'nearest'.

vq = griddatan(x,v,xq,method,options) задает массив ячеек символьных векторов, options, для использования в корпусе Qhull через delaunayn.

Примеры

свернуть все

Интерполяция 4-D набора рассеянных данных и визуализация 3-D изоповерхности интерполированных данных.

Создайте разрозненный набор точек выборки.

rng('default')
X = 2*rand([5000 3])-1;
Y = sum(X.^2,2);

Создайте сетки x, y и z для использования в качестве 3-D набора точек запроса и выполните интерполяцию разрозненных данных в этих точках.

d = -0.8:0.05:0.8;
[y0,x0,z0] = ndgrid(d,d,d);
XI = [x0(:) y0(:) z0(:)];
YI = griddatan(X,Y,XI);

Поскольку трудно визуализировать 4-D наборы данных, используйте изоповерхность 0,8 для визуализации результата интерполяции.

YI = reshape(YI, size(x0));
p = patch(isosurface(x0,y0,z0,YI,0.8));
isonormals(x0,y0,z0,YI,p)
p.FaceColor = 'blue';
p.EdgeColor = 'none';
view(3)
axis equal
camlight
lighting phong

Figure contains an axes. The axes contains an object of type patch.

Используйте интерполяцию ближайшего соседа для набора данных 3-D.

Создайте образец набора данных 3-D. Матрица X содержит местоположения xyz наблюдаемых данных, и v содержит (произвольно сгенерированные) наблюдаемые данные. Этот тип набора данных может представлять, например, уровни кислорода в океанской воде в этих местах.

X = [rand(100,1) rand(100,1) rand(100,1)];
v = rand(100,1);

Используйте интерполяцию ближайшего соседа для аппроксимации значения базовой функции в некоторых точках запроса.

[xx,yy,zz] = meshgrid(0.2:0.025:0.8);
xq = [xx(:) yy(:) zz(:)];
vq = griddatan(X,v,xq,'nearest');

Постройте на графике срезы результата поверх мест расположения точек образца.

vq = reshape(vq,size(xx));
plot3(X(:,1),X(:,2),X(:,3),'r*')
hold on
slice(xx,yy,zz,vq,[0.2 0.4 0.6 0.8],0.5,0.5)

Figure contains an axes. The axes contains 7 objects of type line, surface.

Входные аргументы

свернуть все

Координаты точек выборки, заданные как матрица. Определить x как mоколо-n матрица для представления m точки в n-мерное пространство. Точки выборки должны быть уникальными.

Типы данных: single | double

Значения выборки, указанные как вектор. Определить v как вектор длины m, с одним значением для каждой точки образца (строки), указанным в x.

Если v содержит комплексные числа, затем griddatan интерполирует действительную и мнимую части по отдельности.

Типы данных: single | double
Поддержка комплексного номера: Да

Точки запроса, указанные как матрица. Определить xq в качестве pоколо-n матрица для представления p точки в n-мерное пространство. xq обычно создается из однородной сетки, созданной ndgrid.

Типы данных: single | double

Метод интерполяции, указанный как одно из значений в этой таблице. Оба эти метода основаны на триангуляции входных данных Делоне.

ВыборОписаниеНепрерывность
'linear' (по умолчанию)Линейная интерполяция на основе триангуляции.C0
'nearest'Интерполяция ближайшего соседа.Прерывистый

Если method является [], то griddatan использует значение по умолчанию 'linear' способ.

Типы данных: char

Параметры Qhull, заданные как массив ячеек. Список поддерживаемых параметров см. в Кратком справочнике по Qhull.

Если options является [], то griddatan использует параметры по умолчанию:

  • {'Qt' 'Qbb' 'Qc'} для 2-D и 3-D интерполяций.

  • {'Qt' 'Qbb' 'Qc' 'Qx'} для интерполяций в размерах 4 +.

Если options является {''}, то griddatan не использует никакие параметры, даже значения по умолчанию.

Типы данных: cell

Выходные аргументы

свернуть все

Интерполированные значения, возвращаемые как вектор длины p. Интерполированные значения в vq соответствуют точкам запроса (строкам) в xq.

Совет

  • Нецелесообразно использовать griddatan для интерполяции в измерениях, превышающих приблизительно 6-D, поскольку память, необходимая для нижележащей триангуляции, растет экспоненциально с числом измерений.

  • Интерполяция разрозненных данных с помощью griddatan использует триангуляцию данных Delaunay, поэтому может быть чувствительным к проблемам масштабирования в x. Когда это происходит, можно использовать normalize для масштабирования данных и улучшения результатов. Дополнительные сведения см. в разделе Нормализация данных с различными величинами.

См. также

| |

Представлен до R2006a