interp1
одномерная интерполяция в режиме nearest, linear или spline
Синтаксис
yp = interp1(y, xp) yp = interp1(x, y, xp) yp = interp1(.., xp, method) yp = interp1(.., xp, method, extrapolation)
Аргументы
- x
- вектор по меньшей мере из двух вещественных чисел: ось абсцисс известных узлов
интерполяции, без повторов. По умолчанию
- если
yявляется вектором:x=1:length(y). - если
yявляется матрицей или гиперматрицей:x=1:size(y,1).
- если
- y
- вектор, матрица или гиперматрица вещественных или комплексных
чисел: значения в узлах интерполяции в соответствующих значениях
оси абсцисс
x.- если
yявляется вектором, тоxиyдолжны быть одной длины. - если
yявляется матрицей или гиперматрицей, то мы должны иметьlength(x)==size(y,1). Каждый столбецyтогда интерполирован в зависимости от тех же значений оси абсциссx, для указанногоxp.
- если
- xp
- скаляр, вектор, матрица или гиперматрица десятичных чисел:
ось абсцисс точек, чьи значения
ypдолжны быть вычислены в соответствии с данными узлов интерполяции. - yp
- вектор, матрица или гиперматрица чисел: интерполированные значения
yв указанномxp.- если
yявляется вектором:ypимеет размерxp. - если
yявляется матрицей или гиперматрицей:- если
xpявляется скаляром или вектором:size(yp)равен[length(xp) size(y)(2:$)] - если
xpявляется матрицей или гиперматрицей:size(yp)равен[size(xp) size(y)(2:$)]
- если
- если
- method
- строковое значение, определяющее метод интерполяции. Возможными
значениями и обработкой являются:
"linear": линейная интерполяция между последовательными узлами, используется по умолчанию. "spline": интерполяция кубическими сплайнами "nearest": для каждого значения
xp(j)yp(j)принимает значениеy(i), соответствующееx(i), ближайшего соседаxp(j) - extrapolation
- строковое значение или число, определяющее элементы
yp(j)для значенийxp(j)за пределами интервала[x(1)=min(x),x($)=max(x)]. Мы полагаем здесь и далее, чтоxиyуже соответственно отсортированы."extrap": interp1(x,y,xp, method, "extrap")эквивалентенinterp1(x,y,xp, method, method)."linear": Может использоваться с методами интерполяции "spline"(и, очевидно,"linear")."periodic": Этот тип экстраполяции может использоваться с методами интерполяции "linear"или"spline". Тогда: еслиyявляется вектором, то требуется, чтобыy(1)==y($); в противном случае требуется, чтобыy(1,:)==y($,:)."edgevalue": Тогда yp(i)=y(1)для каждогоxp(i)<x(1), иyp(i)=y($)для каждогоxp(i)>x($).padding: paddingявляется десятичным или комплексным числом, используемым для установкиyp(i)=paddingдля каждогоxp(i) ∉ [min(x),max(x)]. Например:yi=interp1(x,y,xp,method, 0).(none): По умолчанию экстраполяция выполняется сплайнами, когда сплайны используются для интерполяции и дополнением значениями %nan, если интерполяция линейна или по "ближайшему" узлу.
Описание
Указывая (x,y,xp), данная функция вычисляет элементы
yp, соответствующие xp с помощью интерполяции
между известными данными, указанными в узлах (x,y).
x предварительно отсортирован в порядке возрастания, а значения
y либо по столбцам тогда сортируются соответственно.
Интерполяция комплексных значений:
Если y является комплексным, то его вещественная и мнимая
части интерполируются отдельно, и потом суммируются для формирования
комплексного yp.
interp1(x,y,xp,"nearest"):
Для любого xp в середине интервала
[x(i),x(i+1)] верхняя граница x(i+1)
рассматривается как ближайшее значение x, и присваивается
yp=y(i+1).
линейные интерполяции
Они выполняются через функциюlinear_interpn(..),
с соответствующей опцией интерполяции "edgevalue"→"C0",
"linear"→"natural", "periodic"→"periodic".интерполяции сплайнами
interp1(..,xp,"spline") или
interp1(..,xp,"spline","spline") или
interp1(..,xp,"spline","extrap")
используют условия граней не_узел.
Экстраполяция выполняется с помощью обоих сплайновых полиномов,
вычисленных на гранях (x,y).
interp1(..,xp,"spline","edgevalue")
использует условия граней не_узел, а затем вызывает
interp(..,"C0"), чтобы выполнить фактическую
интерполяцию и экстраполяцию.
interp1(..,xp,"spline","periodic")
вызывает оба splin(..), а затем interp(..)
с их опцией "periodic".
interp1(..,xp,"spline","linear")
вызывает splin(..,"natural") для условий линейных граней, а затем
передаётся в interp(..,"linear").
Примеры
x = linspace(0, 10, 11)'; y = sin(x); xx = linspace(0,10,1000)'; yy2 = interp1(x, y, xx, 'linear'); yy1 = interp1(x, y, xx, 'nearest'); yy3 = interp1(x, y, xx, 'spline'); clf h = plot(xx, [yy1 yy2 yy3], x, y, '.') h(1).mark_size = 8; title "Interpolation of a poorly sampled sin() function" fontsize 3 legend(['nearest','linear','spline','nodes'], "in_lower_left");

Смотрите также
- interp — cubic spline evaluation function
- splin — cubic spline interpolation
- linear_interpn — n dimensional linear interpolation
История
| Версия | Описание |
| 6.1.1 |
|
| Report an issue | ||
| << interp | Interpolation | interp2d >> |