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.

 Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 11 Mar 2013
Modifié(e) : Andrei Bobrov le 11 Mar 2013

0 votes

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 commentaires

carl chew
carl chew le 11 Mar 2013
sorry not exactly what i am looking for.
Andrei Bobrov
Andrei Bobrov le 11 Mar 2013
added.
Kirankumar Bacchewar
Kirankumar Bacchewar le 30 Nov 2020
@Andrei, could you please explain the function you added.
Ícar
Ícar le 18 Juil 2021
@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.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by