Why is the Matlab function "feval" needed?

Until Release 14 (MATLAB 7), feval was the way to evaluate a function handle... or to evaluate functions when they are specified by their name.

Source: Mental model for feval().


For feval, the first argument can be a quoted string, giving you more flexibility than a function handle. You could do things like having functions with a base name followed by an index as in fn1, fn2, fn3, and then invoke these dynamically using feval(['fn', num2str(k)], x, y, z);.