Интерполяция для 2-D данных с сеткой в формате сетки
возвращает интерполированные значения функции двух переменных в определенных точках запроса с помощью линейной интерполяции. Результаты всегда проходят через исходную выборку функции. Vq = interp2(X,Y,V,Xq,Yq)X и Y содержат координаты точек выборки. V содержит соответствующие значения функций в каждой точке выборки. Xq и Yq содержат координаты точек запроса.
также указывает Vq = interp2(___,method,extrapval)extrapvalскалярное значение, назначаемое всем запросам, находящимся вне области точек выборки.
Если опустить extrapval аргумент для запросов за пределами области выборочных точек, затем на основе method аргумент interp2 возвращает одно из следующих значений:
Экстраполированные значения для 'spline' и 'makima' методы
NaN значения для других методов интерполяции
Грубая выборка peaks функция.
[X,Y] = meshgrid(-3:3); V = peaks(X,Y);
Постройте график грубого отбора проб.
figure
surf(X,Y,V)
title('Original Sampling');
Создайте сетку запроса с интервалом 0,25.
[Xq,Yq] = meshgrid(-3:0.25:3);
Интерполяция в точках запроса.
Vq = interp2(X,Y,V,Xq,Yq);
Постройте график результата.
figure
surf(Xq,Yq,Vq);
title('Linear Interpolation Using Finer Grid');
Грубая выборка функции пиков.
[X,Y] = meshgrid(-3:3); V = peaks(7);
Постройте график грубого отбора проб.
figure
surf(X,Y,V)
title('Original Sampling');
Создайте сетку запроса с интервалом 0,25.
[Xq,Yq] = meshgrid(-3:0.25:3);
Интерполяция в точках запроса и указание кубической интерполяции.
Vq = interp2(X,Y,V,Xq,Yq,'cubic');Постройте график результата.
figure
surf(Xq,Yq,Vq);
title('Cubic Interpolation Over Finer Grid');
Загрузите некоторые данные изображения в рабочую область.
load flujet.mat colormap gray
Изолируйте небольшую область изображения и приведите ее к одинарной точности.
V = single(X(200:300,1:25));
Отображение области изображения.
imagesc(V); axis off title('Original Image')

Вставка интерполированных значений путем многократного деления интервалов между точками уточненной сетки пять раз в каждом измерении.
Vq = interp2(V,5);
Просмотрите результат.
imagesc(Vq); axis off title('Linear Interpolation')

Грубая выборка функции в диапазоне, [-2, 2] в обоих измерениях.
[X,Y] = meshgrid(-2:0.75:2); R = sqrt(X.^2 + Y.^2)+ eps; V = sin(R)./(R);
Постройте график грубого отбора проб.
figure
surf(X,Y,V)
xlim([-4 4])
ylim([-4 4])
title('Original Sampling')
Создание сетки запросов, которая выходит за пределы области X и Y.
[Xq,Yq] = meshgrid(-3:0.2:3);
Выполнить кубическую интерполяцию в области X и Yи назначьте нулевым все запросы, выходящие за пределы системы.
Vq = interp2(X,Y,V,Xq,Yq,'cubic',0);Постройте график результата.
figure
surf(Xq,Yq,Vq)
title('Cubic Interpolation with Vq=0 Outside Domain of X and Y');
X,Y - Выборочные точки сеткиВыборочные точки сетки, указанные как вещественные матрицы или векторы. Выборочные точки сетки должны быть уникальными.
Если X и Y являются матрицами, то они содержат координаты полной сетки (в формате meshgrid). Используйте meshgrid для создания X и Y матрицы вместе. Обе матрицы должны иметь одинаковый размер.
Если X и Y являются векторами, затем они рассматриваются как векторы сетки. Значения в обоих векторах должны быть строго монотонными, либо увеличивающимися, либо уменьшающимися.
Пример: [X,Y] = meshgrid(1:30,-10:10)
Типы данных: single | double
V - Выборочные значенияЗначения выборки, заданные как вещественная или комплексная матрица. Требования к размеру для V зависит от размера X и Y:
Если X и Y - матрицы, представляющие полную сетку (в meshgrid формат), то V должен быть того же размера, что и X и Y.
Если X и Y являются векторами сетки, то V должен быть матрицей, содержащей length(Y) строки и length(X) столбцы.
Если V содержит комплексные числа, затем interp2 интерполирует действительную и мнимую части по отдельности.
Пример: rand(10,10)
Типы данных: single | double
Поддержка комплексного номера: Да
Xq,Yq - Точки запросаТочки запроса, заданные как вещественные скаляры, векторы, матрицы или массивы.
Если Xq и Yq являются скалярами, то они являются координатами одной точки запроса.
Если Xq и Yq являются векторами различной ориентации, то Xq и Yq рассматриваются как векторы сетки.
Если Xq и Yq являются векторами одинакового размера и ориентации, то Xq и Yq обрабатываются как рассеянные точки в 2-D пространстве.
Если Xq и Yq являются матрицами, то они представляют либо полную сетку точек запроса (в meshgrid формат) или разбросанные точки.
Если Xq и Yq N-D массивы, затем они представляют рассеянные точки в 2-D пространстве.
Пример: [Xq,Yq] = meshgrid((1:0.1:10),(-5:0.1:0))
Типы данных: single | double
k - Коэффициент уточнения1 (по умолчанию) | вещественный, неотрицательный, целочисленный скалярКоэффициент уточнения, заданный как действительный, неотрицательный, целочисленный скаляр. Это значение определяет количество повторных разделений интервалов уточненной сетки в каждом измерении. Это приводит к 2^k-1 интерполированные точки между значениями выборки.
Если k является 0, то Vq является таким же, как V.
interp2(V,1) является таким же, как interp2(V).
На следующем рисунке показано размещение интерполированных значений (красным цветом) среди девяти значений образца (черным цветом) для k=2.

Пример: interp2(V,2)
Типы данных: single | double
method - Метод интерполяции'linear' (по умолчанию) | 'nearest' | 'cubic' | 'spline' | 'makima'Метод интерполяции, указанный в качестве одного из параметров в этой таблице.
| Метод | Описание | Непрерывность | Комментарии |
|---|---|---|---|
'linear' | Интерполированное значение в точке запроса основано на линейной интерполяции значений в соседних точках сетки в каждом соответствующем измерении. Это метод интерполяции по умолчанию. | C0 |
|
'nearest' | Интерполированное значение в точке запроса - это значение в ближайшей выборочной точке сетки. | Прерывистый |
|
'cubic' | Интерполированное значение в точке запроса основано на кубической интерполяции значений в соседних точках сетки в каждом соответствующем измерении. Интерполяция основана на кубическом свертке. | C1 |
|
'makima' | Модифицированная Akima кубическая эрмитовая интерполяция. Интерполированное значение в точке запроса основано на кусочной функции многочленов со степенью не более трех, вычисленной с использованием значений соседних точек сетки в каждом соответствующем измерении. Формула Акимы модифицируется, чтобы избежать переполнения. | C1 |
|
'spline' | Интерполированное значение в точке запроса основано на кубической интерполяции значений в соседних точках сетки в каждом соответствующем измерении. Интерполяция основана на кубическом сплайне, использующем условия конца без узла. | C2 |
|
extrapval - Значение функции вне области X и YЗначение функции вне области X и Y, задается как вещественный или сложный скаляр. interp2 возвращает это постоянное значение для всех точек за пределами области X и Y.
Пример: 5
Пример: 5+1i
Типы данных: single | double
Поддержка комплексного номера: Да
Vq - Интерполированные значенияИнтерполированные значения, возвращаемые как вещественный или комплексный скаляр, вектор или матрица. Размер и форма Vq зависит от используемого синтаксиса и, в некоторых случаях, от размера и значения входных аргументов.
| Синтаксисы | Особые условия | Размер Vq | Пример |
|---|---|---|---|
interp2(X,Y,V,Xq,Yq)interp2(V,Xq,Yq)и варианты этих синтаксисов, которые включают method или extrapval | Xq, Yq скаляры | Скаляр | size(Vq) = [1 1] когда вы проходите Xq и Yq как скаляры. |
| То же, что и выше | Xq, Yq - векторы одинакового размера и ориентации | Вектор того же размера и ориентации, что и Xq и Yq | Если size(Xq) = [100 1]и size(Yq) = [100 1], тогда size(Vq) = [100 1]. |
| То же, что и выше | Xq, Yq - векторы смешанной ориентации | Матрица, в которой количество строк равно length(Yq), и количество столбцов равно length(Xq) | Если size(Xq) = [1 100]и size(Yq) = [50 1], тогда size(Vq) = [50 100]. |
| То же, что и выше | Xq, Yq - матрицы или массивы одинакового размера | Матрица или массив того же размера, что и Xq и Yq | Если size(Xq) = [50 25]и size(Yq) = [50 25], тогда size(Vq) = [50 25]. |
interp2(V,k)и варианты этого синтаксиса, которые включают method или extrapval | Ничего | Матрица, в которой число строк: | Если size(V) = [10 20]и k = 2, тогда size(Vq) = [37 77]. |
Набор значений, которые всегда увеличиваются или уменьшаются без сторнирования. Например, последовательность, a = [2 4 6 8] строго монотонный и нарастающий. Последовательность, b = [2 4 4 6 8] не является строго монотонным, потому что нет изменения в значении между b(2) и b(3). Последовательность, c = [2 4 6 8 6] содержит сторнирование между c(4) и c(5), так что это совсем не монотонно.
Для interp2, полная сетка представляет собой пару матриц, элементы которых представляют сетку точек над прямоугольной областью. Одна матрица содержит координаты x, а другая - координаты y. Значения в x-матрице строго монотонны и увеличиваются вдоль строк. Значения вдоль столбцов постоянны. Значения в y-матрице строго монотонны и увеличиваются вдоль столбцов. Значения вдоль строк постоянны. Используйте meshgrid для создания полной сетки, которую можно передать interp2.
Например, следующий код создает полную сетку для области, -1 ≤ x ≤ 3 и 1 ≤ y ≤ 4:
[X,Y] = meshgrid(-1:3,(1:4))
X =
-1 0 1 2 3
-1 0 1 2 3
-1 0 1 2 3
-1 0 1 2 3
Y =
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4Векторы сетки являются более компактным форматом для представления сетки, чем полная сетка. Связь между двумя форматами и матрицей значений выборки V является

Для interp2, векторы сетки состоят из пары векторов, которые определяют координаты x и y в сетке. Вектор строки определяет координаты x, а вектор столбца - координаты y.

Например, следующий код создает векторы сетки, задающие область, -1 ≤ x ≤ 3 и 1 ≤ y ≤ 4:
x = -1:3; y = (1:4)';
Для interp2рассеянные точки состоят из пары массивов, которые определяют совокупность точек, разбросанных в 2-D пространстве. Один массив содержит координаты x, а другой - координаты y.
Например, следующий код определяет точки, (2,7), (5,3), (4,1) и (10,9):
x = [2 5; 4 10]; y = [7 3; 1 9];
Примечания и ограничения по использованию:
Xq и Yq должен быть одинакового размера. Использовать meshgrid для вычисления на сетке.
Для достижения наилучших результатов предоставьте X и Y в качестве векторов. Значения в этих векторах должны быть строго монотонными и увеличивающимися.
Создание кода не поддерживает 'makima' способ интерполяции.
Для 'cubic' метод интерполяции, если сетка не имеет равномерного интервала, приводит к ошибке. В этом случае используйте 'spline' способ интерполяции.
Для получения наилучших результатов при использовании 'spline' метод интерполяции:
Использовать meshgrid для создания входных данных Xq и Yq.
Использовать небольшое количество точек интерполяции относительно размеров V. Интерполяция по большому набору рассеянных точек может быть неэффективной.
Примечания и ограничения по использованию:
Xq и Yq должен быть одинакового размера. Использовать meshgrid для вычисления на сетке.
Для достижения наилучших результатов предоставьте X и Y в качестве векторов. Значения в этих векторах должны быть строго монотонными и увеличивающимися.
Создание кода не поддерживает 'makima' способ интерполяции.
Для 'cubic' метод интерполяции, если сетка не имеет равномерного интервала, приводит к ошибке. В этом случае используйте 'spline' способ интерполяции.
Для получения наилучших результатов при использовании 'spline' метод интерполяции:
Использовать meshgrid для создания входных данных Xq и Yq.
Использовать небольшое количество точек интерполяции относительно размеров V. Интерполяция по большому набору рассеянных точек может быть неэффективной.
Примечания и ограничения по использованию:
V должен быть двойным или одиночным массивом 2-D. V может быть реальным или сложным. V не может быть вектором.
X и Y должны:
Имеют один и тот же тип (двойной или одиночный).
Быть конечными векторами или 2-D матрицами с увеличивающимися и неповторяющимися элементами в соответствующих размерах.
Выравнивание по декартовым осям при X и Y являются невекторными массивами 2-D (как если бы они были произведены meshgrid).
Иметь размеры, соответствующие V.
Xq и Yq должны быть векторами или массивами одного типа (двойными или одиночными). Если Xq и Yq являются массивами, то они должны иметь одинаковый размер. Если они являются векторами с разной длиной, то они должны иметь разные ориентации.
method должно быть 'linear', 'nearest', или 'cubic'.
Экстраполяция для внешних входных данных не поддерживается.
Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
griddata | griddedInterpolant | interp1 | interp3 | interpn | meshgrid | scatteredInterpolant
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.