Is there a function or method that rounds a value towards a entries of a vector?

1 view (last 30 days)
Say we have the value 5.5. If we do floor(5.5), we get 5. If we do ceil(5.5), we get 6. Is there a function or method that can be used to round 5.5 towards entries of a vector you provide? Take this example:
We have the vector 1.25:10.25 = 1.25, 2.25, 3.25, 4.25, 5.25, 6.25... we also have the value 5.5.
Is there a function that rounds 5.5 to a certain direction using the numbers in this vector?
"function"(5.5,1.25:10.25) = 5.25 And is there another function which can go the other direction? "otherfunction'(5.5, 1.25:10.25) = 6.25
Thanks for your help.

Accepted Answer

Evan on 15 Jul 2013
v = 1.25:10.25;
x = 5.5;
v(find(x-v>0,1,'last')); %round to nearest lower
v(find(x-v<0,1,'first')); %round to nearest higher

More Answers (1)

Image Analyst
Image Analyst on 30 May 2014


Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!