Rounding to a specific number

I am using excel and matlab together. I have a gui interface. One text edit box is used to input any number desired. I would like to take that number and round it to the nearest value that is in my excel spreadsheet. For example, if I input the number 148 and my excel sheet has values 140, 155, 161. I want matlab to round to the nearest value in excel.

 Accepted Answer

Andrei Bobrov
Andrei Bobrov on 11 Mar 2013
Edited: Andrei Bobrov on 11 Mar 2013
x = randi([137,149],10,1);
out = round(x/5)*5;
ADD
s = xlsread('yourfile.xlsx'); % data from Excel -> [140;155;166]
x = randi([136,166],10,1); %let this is your data
[~,ii] = min(bsxfun(@(x,y)abs(x-y),s(:).',x(:)),[],2);
out = s(ii);

4 Comments

sorry not exactly what i am looking for.
@Andrei, could you please explain the function you added.
@Kirankumar Bacchewar that function computes the error between each position in s and x (the data points), and looks for the minimum error, meaning the two values that are closest together.

Sign in to comment.

More Answers (0)

Asked:

on 11 Mar 2013

Commented:

on 18 Jul 2021

Community Treasure Hunt

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

Start Hunting!