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'} для 2D и 3-D интерполяций.

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

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

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

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

свернуть все

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

Советы

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

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

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

| |

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