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