Matlab - Aproximación

   
Vista:

Aproximación

Publicado por Bea (4 intervenciones) el 03/12/2007 21:33:52
Hola, mi problema es el siguiente:
tengo un vector de valores que van de 1.5 en 1.5, y a mi me dan un valor cualquiera que yo tengo que aproximar al valor del vector que más próximo esté, por ejemplo:

vector=[ 0.00 1.50 3.00 4.50 6.00 7.50 9.00 10.50 12.00 13.50 15.00 16.50 18.00 19.50 21.00 22.50 24.00 25.50];

numero=12.3;

entonces el valor que necesitaría sería el 12.

Es que yo lo tengo hecho, pero de una manera muy macarrónica, y estoy segura de que existe una forma mucho más elegante de realizarlo, pero no se me ocurre.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Aproximación

Publicado por Kike (304 intervenciones) el 04/12/2007 02:51:02
Este programa no usa for ni while. Por eso es pequeño.

vector=0:1.5:25.5;
numero=input('Digite un número: ');

% Comparo cada elemento del vector con el número
resta=abs(vector-numero);

% Busco las posiciones del menor valor de las restas
pos=find(resta==min(resta));
% pos puede ser un vector, así que sólo tomo su primer elemento*
pos=pos(1);
mas_cercano=vector(pos);
fprintf(' El más cercano es %f ',mas_cercano);

% Nota:
% pos puede ser vector en caso de que la diferencia entre el número y dos
% elementos del vector de múltiplos de 1.5 sea igual, como en el caso de
% que el número digitado por el usuario sea 5.25, teniendo como valores más
% cercanos a 4.5 y a 6.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aproximación

Publicado por Kike (304 intervenciones) el 04/12/2007 15:01:17
No sé por qué razón los apóstrofos o comillas simples (como se llamen) han sido sustituidas por &apos. Si alguien copia y pega el código fuente que escribí, MATLAB dirá que hay error en &apos. Tomen en cuenta esto para evitar dolores de cabeza.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Aproximación

Publicado por Bea (4 intervenciones) el 04/12/2007 21:48:02
Hola, pero al final acabé encontrando una función que entiendo mejor,
Zi=griddata(X,Y,Z,Xi,Yi)

Muchas gracias de todas maneras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar