Интерполяция нескольких 1D наборов значений

В этом примере показано, как интерполировать три 1D набора данных в одной передаче с помощью griddedInterpolant. Это - более быстрая альтернатива цикличному выполнению по вашим наборам данных.

Задайте x-координаты, которые характерны для всех наборов значений.

x = (1:5)';

Задайте наборы точек выборки вдоль столбцов матрицы V.

V = [x, 2*x, 3*x]
V = 5×3

     1     2     3
     2     4     6
     3     6     9
     4     8    12
     5    10    15

Создайте 2D сетку точек выборки.

samplePoints = {x, 1:size(V,2)};

Это компактное обозначение задает полную 2D сетку. Первый элемент, samplePoints{1}, содержит x-координаты для V, и samplePoints{2} содержит y-координаты. Ориентация каждого координатного вектора не имеет значения.

Создайте interpolant, F, путем передачи точек выборки и демонстрационных значений к griddedInterpolant.

F = griddedInterpolant(samplePoints,V);

Создайте 2D сетку запроса с 0.5 интервал вдоль x по всем столбцам V.

queryPoints = {(1:0.5:5),1:size(V,2)};

Оцените interpolant в x-координатах для каждого набора значений.

Vq = F(queryPoints)
Vq = 9×3

    1.0000    2.0000    3.0000
    1.5000    3.0000    4.5000
    2.0000    4.0000    6.0000
    2.5000    5.0000    7.5000
    3.0000    6.0000    9.0000
    3.5000    7.0000   10.5000
    4.0000    8.0000   12.0000
    4.5000    9.0000   13.5000
    5.0000   10.0000   15.0000

Смотрите также

Похожие темы