MATLAB: Is this code not working whilst the other is

programming

I have written this script:
function sum = Sum2(x,y,z)
s = 0;
for i=0:min(x,y)
for k=0:y-i
s = s + (-1)^k * QuantumDimension(2*x+k-2*i, 2*y-2*k-2*i) * Twist(2*x+k-2*i, 2*y-2*k-2*i)^(z/2);
end
end
s
When I type Sum2(5,3,2) it gives me an appropriate output
but then I have the script
function sum = Sum3(x,y,z)
s = 0;
for i=0:min(x,y)
s = s + (-1)^k * QuantumDimension(2*x-2*i, 2*y-2*i) * Twist(2*x-2*i,2*y-2*i)^(z/2);
end
end
s
And when I type Sum3(5,2,1) I get:
Error: File: Sum3.m Line: 8 Column: 1
This statement is not inside any function.
(It follows the END that terminates the definition of the function "Sum3".)
What the heck?!?!? The placement of s in the script is completly similar to the function Sum2… What is going on here!! Thanks

Best Answer

You have written an 's' after end of the function. Nothing should come after the end keyword
function sum = Sum3(x,y,z)
s = 0;
for i=0:min(x,y)
s = s + (-1)^k * QuantumDimension(2*x-2*i, 2*y-2*i) * Twist(2*x-2*i,2*y-2*i)^(z/2);
end
end
s % remove this
Also note that 'k' is not defined.
In the case of Sum2, you don't have an end keyword corresponding to the function. Remember the end keyword is optional. The two end keyword you have are related to for loops.