Surf(x,y,z)

Сравнение методов интерполяции

Приведенный ниже пример сравнивает методы двумерной интерполяции в случае матрицы данных размера 7х7.

  1. Сформируем функцию peaksна «грубой» сетке (с единичным шагом).

 

[x, y] = meshgrid(-3 : 1 : 3);

z = peaks(x,y);

где функция meshgrid(-3:1:3)задает сетку на плоскости xиyввиде двумерных массивов размера 7х7; функция peaks(x,y)является двумерной функцией, используемой в MATLAB-ев качестве стандартных примеров, а surf(x,y,z)строит окрашенную параметрическую повер-хность. Соответствующий график показан ниже.

 

 

 

 

  1. Создадим теперь более мелкую сетку для интерполяции (с шагом 0.25).

 

[xi,yi] = meshgrid(-3:0.25:3);

 

  1. Осуществим интерполяция перечисленными выше методами.

 

zi1 = interp2(x,y,z,xi,yi,'nearest');

 

zi2 = interp2(x,y,z,xi,yi,'bilinear');

 

zi3 = interp2(x,y,z,xi,yi,'bicubic');

Сравним графики поверхностей для различных методов интерполяции.