Determining the appropriate range for the given number.

1 view (last 30 days)
I want to know, if I have a number such as 1.5 and I have 120 equal segments of number-line from 0.00 to 6.00 how can I determine in which segment this number (in this case 1.5) can be placed. I know I can use 'if-elseif' but for checking 120 case with 'if-elseif' seems very difficult. Is there any other way to do it?

Accepted Answer

KSSV
KSSV on 22 Mar 2019
Edited: KSSV on 22 Mar 2019
x = 1:120 ;
y = linspace(0.,6,120) ;
xi = 1.5 ;
yi = floor(interp1(y,x,xi)) ;
fprintf('%f should be placed between %f and %f\n',xi,y(yi),y(yi+1))
OR:
x = linspace(0.,6,120) ;
xi = 1.5 ;
[val,idx] = min(abs(x-xi)) ;
fprintf('%f should be placed between %f and %f\n',xi,x(idx-1),x(idx))
OR:
x = linspace(0.,6,120) ;
xi = 1.5 ;
idx = knnsearch(x',xi) ;
fprintf('%f should be placed between %f and %f\n',xi,x(idx-1),x(idx))
  1 Comment
Alok Kumar Dubey
Alok Kumar Dubey on 22 Mar 2019
Hi KSSV,
Thank you so much for your effort to help me. Your suggestions worked perfectly for me.
thanks
Alok

Sign in to comment.

More Answers (0)

Products


Release

R2016b

Community Treasure Hunt

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

Start Hunting!