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.