How to round up to closest 0 or 5 in array?

Code
utp = [420.680537950975, 412.407955038480, 389.575547217989, 366.089887932711, 363.090652446469, 352.095749639858];
% https://se.mathworks.com/matlabcentral/answers/14495-rounding-elements-in-array-to-nearest-0-25
up = ceil(utp * 2) / 2;
down = floor(utp * 2) / 2;
Expected output
420
410
390
365
365
350
I started to think to make an for-loop for the task but really - it does not feel like MATLAB.
Maybe, there is something built-in.
MATLAB: 2016b OS: Debian 8.5

Answers (1)

round(utp*5)/5

2 Comments

oops. To round to the nearest multiple of 5, I expect you meant to write:
round(utp/5)*5
SL
SL on 25 Oct 2016
Edited: SL on 25 Oct 2016
Yes, there is a typo in Walter's answer. John's correction is valid. It would be great to get some explanation in your answer such that it would be more generic. Now, I do for instance this 1 `utp = utp * 1000; utp = round(utp/5)*; utp = utp / 1000;` to get dimensions match in cases where integers are not significant. Maybe, just add a notification that it is designed for integers is the best option here.

Sign in to comment.

Categories

Products

Asked:

SL
on 25 Oct 2016

Edited:

SL
on 25 Oct 2016

Community Treasure Hunt

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

Start Hunting!