First of all, usually x is used to refer to the horizontal dimension and y to the vertical one. That's the 2nd and 1st dimension of your matrix respectively. So to access pixel (x, y), you need to do:
Because of that, I usually don't use x and y as a variable, but row and col.
Secondly, to access a rectangle of pixels, don't use a loop (particularly as you keep overwriting the scalar value), but just use matrix indexing:
values = I(y-g:y+g, x-g:x+g)
Finally to get the average of all values in a matrix:
meanvalues = mean(values(:));