В этом примере показано, как интерполировать три 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