logo
для вялички / TROPA V MATLAB_21

6.8 Интерполяция двумерных и многомерных данных

Интерполяция двумерных данных связана с построением функции двух переменных, приближающей заданные в точках (xi;yi) значения zi. Для интерполирования двумерных данных следует задать промежуточные узлы командой meshgrid и воспользоваться interp2, которая реализует один из способов интерполирования в зависимости от значения последнего аргумента: nearest – интерполяция по соседним аргументам; bilinear – билинейная интерполяция; bicubic – интерполяция бикубическими сплайнами.

Ниже приведен текст файл-программы для сравнения различных способов интерполирования, выполнение которой приводит к появлению графиков, изображенных на рис. 6. 8.

Для избежания утомительного ввода таблицы двумерных данных они генерируются при помощи некоторой функции двух переменных.

>> [X,Y]=meshgrid(0:0.2:1);

>> Z=sin(2*pi*X).*sin(2*pi*Y);

>> subplot(2,2,1)

>> surf(X,Y,Z)

>> [Xi,Yi]=meshgrid(0:0.02:1);

>> Z1=interp2(X,Y,Z,Xi,Yi,'nearest');

>> Z2=interp2(X,Y,Z,Xi,Yi,'bilinear');

>> Z3=interp2(X,Y,Z,Xi,Yi,'bicubic');

>> subplot(2,2,2)

>> surf(Xi,Yi,Z1)

>> subplot(2,2,3)

>> surf(Xi,Yi,Z2)

>> subplot(2,2,4)

>>surf(Xi,Yi,Z3)

Рис. 6.8

Для интерполирования трехмерных данных служит команда interp3, для многомерных – interpn. Многомерное интерполирование производится аналогично двумерному, подробнее о нем можно узнать из справочной системы MATLAB с помощью команды doc interpn. Интерполированию посвящен пакет Spline ToolBox.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4