Reputation: 325
When looking for snippets of code for MATLAB and Octave I noticed that functions are ended in various ways, and all of them seem to work just fine. To be specific, I am talking about functions residing in their specific file.
MATLAB seems to end their functions with end
.
function y = average(x)
y = sum(x)/length(x);
end
Octave ends its functions with endfunction
.
function retval = avg (v)
retval = sum (v) / length (v);
endfunction
However, my functions work perfectly fine without any keyword at the end of the function.
So my question is, how strict are MATLAB/Octave with the endings of function definitions.
Upvotes: 4
Views: 4508
Reputation: 30121
endfunction
endfunction
is Octave-specific, and not valid MATLAB syntax (the same goes for endfor
etc...)end
in Octave for compatibility.end
You may want to read the MATLAB documentation for nested functions
You don't have to end a function with the end
statement when it is the only function in a file. From the docs:
Typically, functions do not require an end statement.
Here is a related question on SO: Are multiple functions in one .m file nested or local when "end" isn't used, with the relevant excerpt being this, also from the docs:
To nest any function in a program file, all functions in that file must use an end statement.
So in a function file with a sole function, the short answer is "not strict at all". However, it's good practise to use end
so there is less ambiguity and more flexibility if you were to add other local functions.
Upvotes: 9