MATLAB: How to create a class with functional syntax, like griddedInterpolant

classMATLABsyntax

The documentation for the griddedInterpolant has an example like the following:
[X1, X2] = ndgrid(1:10,1:10);
V = X1.^2 + X2.^2;
F = griddedInterpolant(X1,X2,V, 'cubic');
[X1q, X2q] = ndgrid(1:0.5:10,1:0.5:10);
Vq = F(X1q,X2q);
In the last line the object is called like it is a function. Can I create a class with this syntax, and if so, how?

Best Answer

Yes. See the examples on this documentation page and this documentation page that show how to overload indexing to support this pattern.
Related Question