MATLAB Answers

function error (GUIDE)

1 view (last 30 days)
Hello, I'm getting error messagges at the end of my GUIDE script and i don't know what i should do.
I didn't change anything, that's just what the program did.
Can someone help me?
Thank you!
  1 Comment
Walter Roberson
Walter Roberson on 25 Jun 2021
There is a red mark near the top. You need to look at that error: it is probably causing the other errors.
I suspect that there is an if without end or [ without ] or something like that.

Sign in to comment.

Accepted Answer

Nikhil Sapre
Nikhil Sapre on 25 Jun 2021
Edited: Nikhil Sapre on 25 Jun 2021
Hi Kristin,
Based on the snippet of code you posted, I see that the function blocks don't have an end. Hence the errors.
Here's an example of how a fucntion declaration should look like
function ave = average(x)
ave = sum(x(:))/numel(x);
end
Please refer to the the documentation on how to declare function in MATLAB for more details
Thanks,
Nikhil
  1 Comment
Walter Roberson
Walter Roberson on 25 Jun 2021
GUIDE has gone through several generations. In most of the generations, it uses functions that do not end with end . That is perfectly acceptable. As the link you posted indicates,
The end keyword is required when:
  • Any function in the file contains a nested function.
  • The function is a local function within a function file, and any local function in the file uses the end keyword.
  • The function is a local function within a script file.
and GUIDE never uses nested functions and does not generate a script, so end would only be needed if some local function used end .
Does GUIDE generate local functions with end ? Traditionally it did not. I have seen some hints that it might have done so in the very last couple of releases before it was retired... but it is also possible that people had hand-editted the code I was looking at.
Does the user have the situation where an end was used for a local function at some point? I cannot rule that out. However, when that happens, there is a specific error generated about how at least one local function had an end but other ones did not.
Unfortunately my system is quite busy at the moment so I cannot test to be sure exactly what is going on.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!