Surf(x,y,z)
Сравнение методов интерполяции
Приведенный ниже пример сравнивает методы двумерной интерполяции в случае матрицы данных размера 7х7.
- Сформируем функцию 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)строит окрашенную параметрическую повер-хность. Соответствующий график показан ниже.
- Создадим теперь более мелкую сетку для интерполяции (с шагом 0.25).
[xi,yi] = meshgrid(-3:0.25:3);
- Осуществим интерполяция перечисленными выше методами.
zi1 = interp2(x,y,z,xi,yi,'nearest');
zi2 = interp2(x,y,z,xi,yi,'bilinear');
zi3 = interp2(x,y,z,xi,yi,'bicubic');
Сравним графики поверхностей для различных методов интерполяции.