Having looked through all the answers to do with this, it appears it is just truly awful. I'm tempted to make a wrapper of the function of the form
Function Myfun_wrapper(in_string)
eval(strcat('myfun',in_string))
and just compiling that.
The only other alternative is to have something parse all the arguments, which could be specified using either syntax (so could be numerical arrays, or cell arrays, or structs OR character arrays which if evaluated as eval(['input=',input]) would give those things). This is just terrible.
Is there even a way to tell if a function was called with the function syntax or the command syntax? It would make this much easier.