MATLAB: What’s wrong with the code? (Beginner’s question; geometric sum)

This is the sum I'm trying to use:
1 + r^2 + r^4 + r^6 + … + r^n
If n isn't even, I'm supposed to display an error.
Here's my code:
function [sum] = series(r,n)
sum = 1;
if mod(n,2) == 0
for i=2:n
sum = sum + r.^i;
end
else
disp('Error!');
end
end
Keeps returning the wrong value. What's wrong with my code?

Best Answer

Replace
for i=2:n
by
for i=2:2:n
Or you could always just write
(1-r^(n+2))/1-r^2)
for even n.