griddatan

Интерполируйте данные, имеющий разброс N-D

Синтаксис

vq = griddatan(x,v,xq)
vq = griddatan(x,v,xq,method)
vq = griddatan(x,v,xq,method,options)

Описание

пример

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 изоповерхность интерполированных данных.

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

X = 2*gallery('uniformdata',[5000 3],0)-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

Используйте самую близкую соседнюю интерполяцию на 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)

Входные параметры

свернуть все

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

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

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

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

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

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

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

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

ОпцияОписаниеНепрерывность
'linear' (значение по умолчанию)Основанная на триангуляции линейная интерполяция.C0
самый близкийСамая близкая соседняя интерполяция.Прерывистый

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

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

Qhull-специфичные опции, заданные как массив ячеек. Для списка поддерживаемых опций см. Справочник Qhull.

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

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

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

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

Типы данных: ячейка

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

свернуть все

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

Советы

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

Смотрите также

| |

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

Была ли эта тема полезной?