This example shows how to interpolate three 1-D data sets in a single pass using griddedInterpolant
. This is a faster alternative to looping over your data sets.
Define the x-coordinates that are common to all value sets.
x = (1:5)';
Define the sets of sample points along the columns of matrix 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
Create a 2-D grid of sample points.
samplePoints = {x, 1:size(V,2)};
This compact notation specifies a full 2-D grid. The first element, samplePoints{1}
, contains the x-coordinates for V
, and samplePoints{2}
contains the y-coordinates. The orientation of each coordinate vector does not matter.
Create the interpolant, F
, by passing the sample points and sample values to griddedInterpolant
.
F = griddedInterpolant(samplePoints,V);
Create a 2-D query grid with 0.5
spacing along x
over all columns of V
.
queryPoints = {(1:0.5:5),1:size(V,2)};
Evaluate the interpolant at the x-coordinates for each value set.
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