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

조회 수: 145 (최근 30일)
Elprololo
Elprololo 2018년 2월 13일
댓글: Rebecca 2025년 3월 13일
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.
  댓글 수: 4
Robert Laws
Robert Laws 2025년 3월 10일

You can get this error if you put an extra 'end' in you function by mistake.

Rebecca
Rebecca 2025년 3월 13일
Thank you Robert! I couldn't figure out why my previously fine script was giving this error, and the extra "end" was the culprit. I truly appreciate your having posted that and saving a random user searching for answers a ton of time!

댓글을 달려면 로그인하십시오.

답변 (3개)

James Browne
James Browne 2019년 6월 15일
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 2021년 8월 11일
편집: DanielFromIllinois 2021년 8월 11일
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
Kishore S Shenoy
Kishore S Shenoy 2021년 8월 11일
Your comment seems cryptic. Care to elaborate?
Stephen23
Stephen23 2021년 8월 11일
편집: Stephen23 2021년 8월 11일
"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 ?

댓글을 달려면 로그인하십시오.


Soumya Sinha
Soumya Sinha 2019년 6월 17일
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

카테고리

Help CenterFile Exchange에서 Scripts에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by