MATLAB: What is the difference between Function and Function Handle

functionfunction handles

Hello, I have to use lsqnonlin and cannot use function(Objective Function to be minimized). But it only accepts Function Handles but not direct Function calls. I tried to search on various sources but the Idea isn't clear. Can someone please explain me?
Thank you,

Best Answer

A function is some code written in a file, starting with the function keyword. When you call that function then MATLAB will run that code.
A function handle is a variable in the MATLAB workspace which is a handle to a particular function (which could be in a file, or an anonymous function). Because a function handle is a variable it can be passed around just like any other variable. This is particularly useful when used as an input argument to another function (e.g. as the objective function for optimization functions).
Function handles are one of the fundamental variable classes in MATLAB:
Function handles are created using the @ character, e.g.:
myfun = @sin % handle to SIN function
myfun = @(x)sqrt(x)+5 % handle to anonymous function