Rounds the elements of X with the desired precision. Better than similar submissions as it handles arrays, negative and positive precision values, and ceil and floor functionality. It also is very tolerant to different numbers of inputs so it can be used as a direct replacement for round.
%ROUNDX rounds the elements of X with the desired precision
% output = roundx(X)
% output = roundx(X, decimalplaces)
% output = roundx(X, decimalplaces, options)
% X is the value to be rounded. X can be an array, if desired.
% DECIMALPLACES is the number of decimal places to round to. Also accepts
% 0 and negative values, used to round to desired sig. figs.
% OPTIONS can be 'ceil', 'floor', or 'round' and indicates to the function
% whether to round up, down, or to the closest value, respectively.
% Default is 'round' if excluded.
% Author: David Berman (email@example.com)