The run function is intended to run script files, not function files. Scripts do not accept input arguments.
If you want to run a function file in another directory that is not on the MATLAB search path, to be exception safe:
>> type c:\temp\example564467.m
function y = example564467(x)
>> goback = onCleanup(@() cd(P));
If this were in a function, regardless of whether the call to example564467 succeeded or threw an error, the object goback would be deleted when the function exited and so MATLAB would return to its previous location.
Alternately you could add the directory containing the function to be executed to the MATLAB search path, though I'd probably only do that if I were going to call functions in that directory repeatedly.