Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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 >> |