unable to define local function because it has the same name as the file

202 views (last 30 days)
Seriously, what kind of programming language consider this is an error ?
Is there only a way to overcome this problem ? I though that in matlab function where forced to be set in files that have the same name.
I am desperate about this software, why would someone use something like matlab when there are great opensource tools in python out there.
  2 Comments
Dayi Li
Dayi Li on 15 Jun 2019
Check your file and see if there is any extraneous code before the line defining the function. That might be the problem.

Sign in to comment.

Answers (3)

James Browne
James Browne on 15 Jun 2019
I believe the answer is that you can have an entire script be a function, if the file name is something like "solverX" and the first line of the file is:
function solverX(input)
Then the entire script behaves as a function and you can call it from any other file in the same working directory, simply by:
y = solverX(argument);
This ability is actually quite handy when you have dozens of custom functions that you may want to be able to call at any time from within any given file. It may be frustrating to learn at first, but I actually started using my files as functions a long time ago, it really helps me keep things organized.

DanielFromIllinois
DanielFromIllinois on 11 Aug 2021
Edited: DanielFromIllinois on 11 Aug 2021
I had this error pop up and it was caused by some accidentally uncommented code above the function call. The uncommented line was erroneous itself too. Properly commenting it out removed the error. Similar to what @Dayi Li said on this post. Adding this solution because it is what helped me fix it. As for why this is the error text for this specific issue is beyond me. I'm not sure what the developers were getting at or assuming someone was trying to erroneously do?
  2 Comments
Stephen23
Stephen23 on 11 Aug 2021
Edited: Stephen23 on 11 Aug 2021
"As for why this is the error text for this specific issue is beyond me."
Simply because you wrote a script (exactly as Dayi Lu wrote two years ago). A script is identified by its filename... and within your script you also defined a local function using the script name. Thus the error message quite accurately informs you that the local function has the same name as the filename (i.e. script).
You wrote a script.
You wrote a local function.
They had the same names (which is not allowed).
As far as I can tell, the error message includes that information.
Given that MATLAB cannot distinguish between code intentionally added (i.e. the user wants to make a script) vs. your "accidentally uncommented code" that turned it into a script, what error would you suggest to inform the user that their local function uses the same name as the script they have just written ?

Sign in to comment.


Soumya Sinha
Soumya Sinha on 17 Jun 2019
You can create a separate SCRIPT for each and every function name and this created script could be used from any other script.
The standard syntax for function definition is as follows
function [outputArguements] = functionName(inputArguements)
%Whatever written here is executed when the function is called from a script
end
You can read more about matlab functions, their definitions, working but clicking on the link MATLAB functions

Categories

Find more on Programming in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!