Determining the appropriate range for the given number.

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?

 Respuesta aceptada

KSSV
KSSV el 22 de Mzo. de 2019
Editada: KSSV el 22 de Mzo. de 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 comentario

Hi KSSV,
Thank you so much for your effort to help me. Your suggestions worked perfectly for me.
thanks
Alok

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Fortran with MATLAB en Centro de ayuda y File Exchange.

Productos

Versión

R2016b

Etiquetas

Preguntada:

el 22 de Mzo. de 2019

Comentada:

el 22 de Mzo. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by