В приложении Curve Fitting выберите Interpolant
из списка типов модели.
Категория подгонки Interpolant
соответствует кривой интерполяции или поверхности, которая проходит через каждую точку данных. Для поверхностей тип подгонки Interpolant использует функцию MATLAB® scatteredInterpolant
для линейных и самых близких методов, функцию griddata
MATLAB для кубических и бигармонических методов и функцию tpaps
для интерполяции сплайна тонкой пластины.
Настройки показывают здесь.
Можно задать установку Method: Nearest neighbor
, Linear
, Cubic
, Shape-preserving (PCHIP)
(для кривых), Biharmonic (v4)
(для поверхностей) или Thin-plate spline
(для поверхностей). Для получения дополнительной информации займитесь Методами интерполяции.
Если вы соответствуете поверхности, и ваши входные переменные имеют различные шкалы, включают и выключают опцию Center and scale, чтобы видеть различие в поверхностной подгонке. Нормализация входных параметров может строго влиять на результаты основанного на треугольнике (т.е. кусочный Linear
и интерполяция Cubic
) и методы интерполяции поверхности Nearest neighbor
.
Для поверхностей попробуйте сплайны тонкой пластины, когда вы потребуете и сглаженной поверхностной интерполяции и хороших свойств экстраполяции.
fit
Этот пример показывает, как использовать функцию fit
, чтобы соответствовать линейным interpolant моделям к данным.
Interpolant подходящие методы
Задайте interpolant образцовый метод при вызывании подходящей функции с помощью одной из опций, обрисованных в общих чертах в Именах модели Interpolant. Ни один из interpolant методов не имеет дополнительных подходящих опциональных параметров.
Соответствуйте линейной модели Interpolant
Загрузите данные и соответствуйте линейной interpolant модели с помощью опции 'linearinterp'
.
load census f = fit(cdate,pop,'linearinterp'); plot(f,cdate,pop);
Сравните линейные модели Interpolant
Загрузите данные и создайте и самого близкого соседа и pchip interpolant подгонки с помощью опций 'pchip'
и 'nearestinterp'
.
load carbon12alpha f1 = fit(angle,counts,'nearestinterp'); f2 = fit(angle,counts,'pchip');
Сравните кривые по экспериментальным точкам f1
и f2
на графике.
p1 = plot(f1,angle,counts); xlim([min(angle),max(angle)]) hold on p2 = plot(f2,'b'); hold off legend([p1;p2],'Counts per Angle','Nearest Neighbor','pchip',... 'Location','northwest')
Для альтернативы 'cubicinterp' или 'pchipinterp', можно использовать другие функции сплайна, которые дают вам больший контроль над тем, что вы создаете. Займитесь Сплайнами в Curve Fitting Toolbox.