Интерполяция для 3-D данных с сеткой в формате сетки
возвращает интерполированные значения функции трех переменных в определенных точках запроса с помощью линейной интерполяции. Результаты всегда проходят через исходную выборку функции. Vq = interp3(X,Y,Z,V,Xq,Yq,Zq)X, Y, и Z содержат координаты точек выборки. V содержит соответствующие значения функций в каждой точке выборки. Xq, Yq, и Zq содержат координаты точек запроса.
также указывает Vq = interp3(___,method,extrapval)extrapvalскалярное значение, назначаемое всем запросам, находящимся вне области точек выборки.
Если опустить extrapval аргумент для запросов за пределами области выборочных точек, затем на основе method аргумент interp3 возвращает одно из следующих значений:
Экстраполированные значения для 'spline' и 'makima' методы
NaN значения для других методов интерполяции
Загрузите точки и значения функции потока, отобранные в 10 точках в каждом измерении.
[X,Y,Z,V] = flow(10);
flow функция возвращает сетку в массивах, X, Y, Z. Сетка покрывает область, , 3≤Y≤3, 3≤Z≤3, а шаг = 0,7 ΔZ = 0,7.
Теперь постройте график срезов по объему образца в: X=6, X=9, Y=2, и Z=0.
figure
slice(X,Y,Z,V,[6 9],2,0);
shading flat
Создайте сетку запросов с интервалом 0,25.
[Xq,Yq,Zq] = meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);
Выполните интерполяцию в точках сетки запроса и постройте график результатов с использованием тех же плоскостей среза.
Vq = interp3(X,Y,Z,V,Xq,Yq,Zq);
figure
slice(Xq,Yq,Zq,Vq,[6 9],2,0);
shading flat
Загрузите точки и значения функции потока, отобранные в 10 точках в каждом измерении.
[X,Y,Z,V] = flow(10);
flow функция возвращает сетку в массивах, X, Y, Z. Сетка покрывает область, , 3≤Y≤3, 3≤Z≤3, а шаг = 0,7 ΔZ = 0,7.
Постройте график срезов по объему образца в: X=6, X=9, Y=2, и Z =0.
figure
slice(X,Y,Z,V,[6 9],2,0);
shading flat
Создайте сетку запросов с интервалом 0,25.
[Xq,Yq,Zq] = meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);
Интерполяция в точках в сетке запроса с помощью 'cubic' способ интерполяции. Затем постройте график результатов.
Vq = interp3(X,Y,Z,V,Xq,Yq,Zq,'cubic'); figure slice(Xq,Yq,Zq,Vq,[6 9],2,0); shading flat

Создайте векторы сетки, x, y, и z. Эти векторы определяют точки, связанные со значениями в V.
x = 1:100; y = (1:50)'; z = 1:30;
Определите значения выборки как массив случайных чисел 50 на 100 на 30, V. Используйте rand для создания массива.
rng('default')
V = rand(50,100,30);Оценить V в трех точках за пределами области x, y, и z. Определить extrapval = -1.
xq = [0 0 0];
yq = [0 0 51];
zq = [0 101 102];
vq = interp3(x,y,z,V,xq,yq,zq,'linear',-1)vq = 1×3
-1 -1 -1
Все три точки оцениваются как -1 потому что они находятся вне области x, y, и z.
X,Y,Z - Выборочные точки сеткиВыборочные точки сетки, указанные как вещественные массивы или векторы. Выборочные точки сетки должны быть уникальными.
Если X, Y, и Z являются массивами, то они содержат координаты полной сетки (в формате meshgrid). Используйте meshgrid для создания X, Y, и Z массивы вместе. Эти массивы должны иметь одинаковый размер.
Если X, Y, и Z являются векторами, затем они рассматриваются как векторы сетки. Значения в этих векторах должны быть строго монотонными, либо увеличивающимися, либо уменьшающимися.
Пример: [X,Y,Z] = meshgrid(1:30,-10:10,1:5)
Типы данных: single | double
V - Выборочные значенияОбразцы значений, заданные как вещественный или комплексный массив. Требования к размеру для V зависит от размера X, Y, и Z:
Если X, Y, и Z представляют собой массивы, представляющие полную сетку (в meshgrid формат), то размер V соответствует размеру X, Y, или Z .
Если X, Y, и Z являются векторами сетки, то size(V) = [length(Y) length(X) length(Z)].
Если V содержит комплексные числа, затем interp3 интерполирует действительную и мнимую части по отдельности.
Пример: rand(10,10,10)
Типы данных: single | double
Поддержка комплексного номера: Да
Xq,Yq,Zq - Точки запросаТочки запроса, заданные как вещественные скаляры, векторы или массивы.
Если Xq, Yq, и Zq скаляры, то они являются координатами одной точки запроса в R3.
Если Xq, Yq, и Zq являются векторами различной ориентации, то Xq, Yq, и Zq рассматриваются как векторы сетки в R3.
Если Xq, Yq, и Zq являются векторами одинакового размера и ориентации, то Xq, Yq, и Zq обрабатываются как рассеянные точки в R3.
Если Xq, Yq, и Zq массивы одного размера, то они представляют либо полную сетку точек запроса (в meshgrid формат) или разрозненные точки в R3.
Пример: [Xq,Yq,Zq] = meshgrid((1:0.1:10),(-5:0.1:0),3:5)
Типы данных: single | double
k - Коэффициент уточнения1 (по умолчанию) | вещественный, неотрицательный, целочисленный скалярКоэффициент уточнения, заданный как действительный, неотрицательный, целочисленный скаляр. Это значение определяет количество повторных разделений интервалов уточненной сетки в каждом измерении. Это приводит к 2^k-1 интерполированные точки между значениями выборки.
Если k является 0, то Vq является таким же, как V.
interp3(V,1) является таким же, как interp3(V).
На следующем рисунке изображена k=2 в одной плоскости R3. Имеется 72 интерполированных значения в красном цвете и 9 выборочных значений в черном цвете.

Пример: interp3(V,2)
Типы данных: single | double
method - Метод интерполяции'linear' (по умолчанию) | 'nearest' | 'cubic' | 'spline' | 'makima'Метод интерполяции, указанный в качестве одного из параметров в этой таблице.
| Метод | Описание | Непрерывность | Комментарии |
|---|---|---|---|
'linear' | Интерполированное значение в точке запроса основано на линейной интерполяции значений в соседних точках сетки в каждом соответствующем измерении. Это метод интерполяции по умолчанию. | C0 |
|
'nearest' | Интерполированное значение в точке запроса - это значение в ближайшей выборочной точке сетки. | Прерывистый |
|
'cubic' | Интерполированное значение в точке запроса основано на кубической интерполяции значений в соседних точках сетки в каждом соответствующем измерении. Интерполяция основана на кубическом свертке. | C1 |
|
'makima' | Модифицированная Akima кубическая эрмитовая интерполяция. Интерполированное значение в точке запроса основано на кусочной функции многочленов со степенью не более трех, вычисленной с использованием значений соседних точек сетки в каждом соответствующем измерении. Формула Акимы модифицируется, чтобы избежать переполнения. | C1 |
|
'spline' | Интерполированное значение в точке запроса основано на кубической интерполяции значений в соседних точках сетки в каждом соответствующем измерении. Интерполяция основана на кубическом сплайне, использующем условия конца без узла. | C2 |
|
extrapval - Значение функции вне области X, Y, и ZЗначение функции вне области X, Y, и Z, задается как вещественный или сложный скаляр. interp3 возвращает это постоянное значение для всех точек за пределами области X, Y, и Z.
Пример: 5
Пример: 5+1i
Типы данных: single | double
Поддержка комплексного номера: Да
Vq - Интерполированные значенияИнтерполированные значения, возвращаемые как вещественный или комплексный скаляр, вектор или массив. Размер и форма Vq зависит от используемого синтаксиса и, в некоторых случаях, от размера и значения входных аргументов.
| Синтаксисы | Особые условия | Размер Vq | Пример |
|---|---|---|---|
interp3(X,Y,Z,V,Xq,Yq,Zq)interp3(V,Xq,Yq,Zq)и варианты этих синтаксисов, которые включают method или extrapval | Xq, Yq, и Zq скаляры. | Скаляр | size(Vq) = [1 1] когда вы проходите Xq, Yq, и Zq как скаляры. |
| То же, что и выше | Xq, Yq, и Zq - векторы одинакового размера и ориентации. | Вектор того же размера и ориентации, что и Xq, Yq, и Zq | Если size(Xq) = [100 1], и size(Yq) = [100 1], и size(Zq) = [100 1], тогда size(Vq) = [100 1]. |
| То же, что и выше | Xq, Yq, и Zq являются векторами смешанной ориентации. | size(Vq) = [length(Y) length(X) length(Z)] | Если size(Xq) = [1 100],и size(Yq) = [50 1], и size(Zq) = [1 5],тогда size(Vq) = [50 100 5]. |
| То же, что и выше | Xq, Yq, и Zq - массивы одинакового размера. | Массив того же размера, что и Xq, Yq, и Zq | Если size(Xq) = [50 25],и size(Yq) = [50 25], и size(Zq) = [50 25], тогда size(Vq) = [50 25]. |
interp3(V,k)и варианты этого синтаксиса, которые включают method или extrapval | Ничего | Массив, в котором длина | Если size(V) = [10 12 5],и k = 3, тогда size(Vq) = [73 89 33]. |
Набор значений, которые всегда увеличиваются или уменьшаются без сторнирования. Например, последовательность, 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), так что это совсем не монотонно.
Для interp3полная сетка состоит из трех массивов, элементы которых представляют сетку точек, определяющих область в R3. Первый массив содержит координаты x, второй массив содержит координаты y, а третий массив содержит координаты z. Значения в каждом массиве изменяются вдоль одного размера и являются постоянными вдоль других размеров.
Значения в x-массиве строго монотонны, увеличиваются и изменяются вдоль второго измерения. Значения в y-массиве строго монотонны, увеличиваются и изменяются вдоль первого измерения. Значения в z-массиве строго монотонны, увеличиваются и изменяются вдоль третьего измерения. Используйте meshgrid для создания полной сетки, которую можно передать interp3.
Для interp3, векторы сетки состоят из трех векторов смешанной ориентации, которые определяют точки на сетке в R3.
Например, следующий код создает векторы сетки для области, 1 ≤ x ≤ 3, 4 ≤ y ≤ 5 и 6 ≤ z ≤ 8:
x = 1:3; y = (4:5)'; z = 6:8;
Для interp3, точки рассеяния состоят из трех массивов или векторов, Xq, Yq, и Zq, которые определяют коллекцию точек, разбросанных по R3. i-й массив содержит координаты в i-ом измерении.
Например, следующий код определяет точки (1, 19, 10), (6, 40, 1), (15, 33, 22) и (0, 61, 13).
Xq = [1 6; 15 0]; Yq = [19 40; 33 61]; Zq = [10 1; 22 13];
Примечания и ограничения по использованию:
Xq, Yq, и Zq должен быть одинакового размера. Использовать meshgrid для вычисления на сетке.
Для достижения наилучших результатов предоставьте X, Y, и Z в качестве векторов. Значения в этих векторах должны быть строго монотонными и увеличивающимися.
Создание кода не поддерживает 'makima' способ интерполяции.
Для 'cubic' метод интерполяции, если сетка не имеет равномерного интервала, приводит к ошибке. В этом случае используйте 'spline' способ интерполяции.
Для получения наилучших результатов при использовании 'spline' метод интерполяции:
Использовать meshgrid для создания входных данных Xq, Yq, и Zq.
Использовать небольшое количество точек интерполяции относительно размеров V. Интерполяция по большому набору рассеянных точек может быть неэффективной.
Примечания и ограничения по использованию:
V должен быть двойным или одиночным массивом 3-D. V может быть реальным или сложным.
X, Y, и Z должны:
Имеют один и тот же тип (двойной или одиночный).
Быть конечными векторами или 3-D матрицами с увеличивающимися и неповторяющимися элементами в соответствующих размерах.
Выравнивание по декартовым осям при X,Y, и Z являются 3-D массивами (как если бы они были произведены meshgrid).
Иметь размеры, соответствующие V.
Xq, Yq, и Zq должны быть векторами или массивами одного типа (двойными или одиночными). Если Xq, Yq, и Zq являются массивами, то они должны иметь одинаковый размер. Если они являются векторами с разной длиной, то один из них должен иметь другую ориентацию.
method должно быть 'linear' или'nearest'.
Экстраполяция для внешних входных данных не поддерживается.
Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.