Modern Matlab versions process FOR loops very efficiently. I assume, the bottleneck of your code is the very expensive exp() function. Therefore avoiding the loop will not accelerate the code. It is even possible, that the need for large temporary arrays of a vectorized version decreases the speed.
Is it possible to reduce the number of exp() calls? This would be possible if the z_n are not unique.
Please post your current code and some meaningful input data. Maybe we can see another problem.