Since you want a symmetric set of points around 0, first generate a set on the positive side of the origin, then just flip them around.
So I'll generate a set of points that runs effectively down from b to a, with increasing spacing as it moves towards a. What is the geometric increment?
geoinc = nthroot(b/a,N-1)
So the spacing increases as you move towards a, away from b, and it does so in geometric fashion. Now just duplicate the set, negating them.
So easy enough. But no, I won't even try to tweak your code. Far better to learn to use MATLAB as it is designed to be used, manipulating vectors and arrays.