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

Antworten (1)

Walter Roberson
Walter Roberson am 25 Okt. 2016

1 Stimme

round(utp*5)/5

2 Kommentare

John D'Errico
John D'Errico am 25 Okt. 2016
Bearbeitet: John D'Errico am 25 Okt. 2016
oops. To round to the nearest multiple of 5, I expect you meant to write:
round(utp/5)*5
SL
SL am 25 Okt. 2016
Bearbeitet: SL am 25 Okt. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Startup and Shutdown finden Sie in Hilfe-Center und File Exchange

Produkte

Gefragt:

SL
am 25 Okt. 2016

Bearbeitet:

SL
am 25 Okt. 2016

Community Treasure Hunt

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

Start Hunting!

Translated by