File: myFact.m Line: 11 Column: 1. This statement is not inside any function.

2 views (last 30 days)
function result = myFact(n)
if n == 0
result = 1;
else
result = 1;
for i = 1:n
result = result * i;
end
end
end
n = 5;
result = myFact(n);
disp(['The factorial of ', num2str(n), ' is: ', num2str(result)]);
Error: File: myFact.m Line: 11 Column: 1
This statement is not inside any function.
(It follows the END that terminates the definition of the function "myFact".)
How can I fix it? Please help.

Accepted Answer

Voss
Voss on 3 Apr 2024
If the first executable line of code (that is, the first line that's not a comment) in an m-file is a function declaration, then that m-file is a function file and cannot contain anything besides that function or other local functions (a.k.a. subfunctions).
If the first executable line of code in an m-file is not a function declaration, then that m-file is a script and can contain functions and other lines of code not in functions (and until very recently all function definitions must be at the end of the script).
So your options are to:
  1. Remove the lines that are not in the function definition (i.e., the three lines after the last end), which makes your m-file a function file, and then run those lines in the command window or put them in a script, or
  2. Move those three lines to the top of your m-file, making your m-file a script.

More Answers (0)

Categories

Find more on Environment and Settings in Help Center and File Exchange

Tags

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!