You have already preallocated y2, y3, y4 with zeros. Use a row indexing variable to insert temp and stop re-inserting the zeros.
Also, downsample will work along columns. Just remove your loop and uses of the i variable.
For example:
temp = downsample(fft_frame,2); % Down sampling by 2
y2(1:size(temp,1),:) = temp;