Something like this. With Matlab it's common practise to use double for all numerical variables. (Matlab has "integer in floating-point format" called flint, which isn't affected by round-off errors.  See Floating Points in Matlab.)
A = rand(100,100);
Fill_Value = int16( 0 );
ten = int16( 10 );
Shift_value = int16( ?? );
A = noncircular_shift( A, Fill_value, Shift_value, ten )
where
function    A = noncircular_shift( A, Fill_value, Shift_value, ten )
    for Target_Group = 1: +5: length(A)
        for Relative_Row = 0: 4
            Row = Target_Group+Relative_Row;
            Shift_Value = Relative_Row* ten ; % notice ten 
            A(Row,:) = [Fill_Value*ones(1,Shift_Value), A(Row,1:end-Shift_Value)];
        end
    end
end
Notice that the loop-counters will be doubles (i.e flints). 
