Multiply two griddedInterpolant functions

3 views (last 30 days)
I have some data and I have interpolated them using the function griddedInterpolant. Now, let's suppose I end up with f and g from the previous interpolation. What I want to do now is fun = f*g. I can I do that?
Thanks
Anita

Accepted Answer

Bjorn Gustavsson
Bjorn Gustavsson on 25 Oct 2021
If you have 2 functions f(x,y) and g(x,y) you can evaluate the product on your selected grid-points and multiply them:
fx_at_xy = f(x,y).*g(x,y);
or you can create a function that multiplies the two:
f_times_g = @(x,y) f(x,y).*g(x,y);
and use that one - this should (at least ought to) be more convenient when for example integrate over some region in the x-y-plane.
HTH
  1 Comment
Anita Capelli
Anita Capelli on 25 Oct 2021
Edited: Anita Capelli on 25 Oct 2021
I couldn't do it like this. So I changed and I used instead of griddedInterpolant interp1 creating an handle function. Therefore, supposing to have data_x = [], data_y = [], I created f = @(x) interp1(data_x,data_y,x). The same for g. How should I multiply them? I was doing
h = @(x) f(x).*g(x)
but it says Array indices must be positive integers or logical values.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!