I currently trying to generate a function which will allow me to evaluate multiple linear interpolation functions at a single point and generate a vector of resulting values. The x values are the same for each function I wish to interpolate. The y data is given by a matrix of values of which each row represents a single functions data. I can write a function in which I manually generate each interpolation function and evaluate them at a particular point. However, I cant seem to generate the interpolation functions iteratively for any given rows of a matrix. My application has 18 rows of data so I don’t really want to do this manually. Sorry if this is a basic question. I’m still learning. Please see the example below. Thanks!
using Interpolations
function create_interp_func(grid, values)
vf_g = LinearInterpolation(grid, values[1,:], extrapolation_bc = Line());
vf_b = LinearInterpolation(grid, values[2,:], extrapolation_bc = Line());
vf = function(x) return [vf_g(x), vf_b(x)] end
return vf
end
g = range(0,length=10,1);
vals = zeros(2,10);
vals[1,:] = sin.(grid);
vals[2,:] = cos.(grid);
f = create_interp_func(g, vals)
f(0.26493543)