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);.