I'm not entirely sure how you are generating the output, but you should be able to do something like:
I = find(isnan(data));
for iNaN= 1:length(I)
cur_index = I(iNaN);
data(cur_index ) = data(cur_index -1);
This approach relies on linear indexing to get the previous value. Even if the previous value was NaN, you've overwritten it with a valid value. You are going to run into problems if you need to do something special for the first value in each column. This approach will replace the first value in a column with the last value in the previous column.