Round to X

Rounds the supplied N-D matrix to the values in a supplied array.
418 Downloads
Updated 2 Mar 2015

View License

Need to round your data to a set of particular values? This function takes as its input the data you want to round, the values you want the data rounded /to/, and a rounding method (currently 'round', 'floor' and 'ceil', that each work the way their .m counterparts do).
The function is vectorized for efficiency.
round2x(data,roundvals,method)
Given an N-dimensional array of numbers, this function will round all the elements of the array to the nearest elements in the supplied vector or ND array.

Example:
data = rand(2,9)*10; %data that you want to round
roundvals = [-1 2 3.14 8]; %numbers you want to round the data to
rounded = ROUND2X(data,roundvals);

If no rounding method is chosen, the function acts like 'round.m' in terms of rounding direction. The following methods can also be called:
'round' (Default: round towards nearest)
'floor' (round towards -infinity)
'ceil' (round towards +infinity)

Example:
rounded = ROUND2X(data,roundvals,'floor');

Happy rounding!

Cite As

W. Owen Brimijoin (2024). Round to X (https://www.mathworks.com/matlabcentral/fileexchange/47178-round-to-x), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags
Acknowledgements

Inspired by: roundtowardvec

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.4.0.0

Fixed 0.5 error, improved inputs and input checking (including error for complex values), and added a 'See Also' line. Function was also changed in name from round2vec to round2x, to reflect the fact that the round values could ND.

1.3.0.0

In fixing a NaN problem, an Inf problem was introduced. This has been corrected!

1.2.0.0

Changed page name

1.1.0.0

Fixed a ceiling/floor bug that occurred when all values in supplied data were outside the range of the rounding vector. Also added an error check relating to rounding vectors there were either empty or contained NaNs.

1.0.0.0