MATLAB: “Function definitions are not permitted in this context.”

contextDefinitionserrorfunctionpermitted

I'm getting this error, but I'm not sure why. I'm using 2016a. I've attached my code file.

Best Answer

In 2016a and earlier versions (I believe this changed in R2017a), you could not define functions (except anonymous functions) in a script.
The easiest solution is to create ABD.m as a function with no arguements or outputs, so:
function ABD
%%--------------- MAIN PROGRAM ---------------
... REST OF YOUR CURRENT CODE ...
end
Be sure to remember to add the final end call.
Nothing else about ‘ABD’ needs to change, except that as a function, its workspace is entirely contained within it, and will not appear in the Workspace Browser. That’s a small disadvantage, but one you can work around by simply displaying the variables you want to the Command Window. You can still call it from the Command Line as well as execute it from the Editor, since it requires no arguments.