Matlab - Interpolar en una tabla de datos

 
Vista:

Interpolar en una tabla de datos

Publicado por Juan (43 intervenciones) el 02/03/2011 20:06:24
Hola a todos, tengo una tabla de datos en excel. Quiero preguntaros si lo siguiente se puede hacer: la tabla tiene dos columnas y varias filas. Por ejemplo:

X Y
1 0.1
2 0.4
3 0.23
4 0.2

¿Puedo decir en matlab que me de el valor de Y para un X= 2.34? En definitiva, lo que busco es interpolar en esos datos.

Espero haberme explicado bien, le doy las gracias a cualquier persona que me pueda indicar cómo hacerlo y si se puede.
Un abrazo a todos.
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:Interpolar en una tabla de datos

Publicado por Jorge (226 intervenciones) el 03/03/2011 00:07:16
Si tienes

x = 1 : 4
y = [.1 .4 .23 .2]

puedes utilizar la función interp1, dando como parámetros tus vectores de la tabla y el valor objetivo. Es una interpolación lineal en este caso.

yi = interp1(x, y, 2.34)

La función interp1 tiene más posibilidades. Teclea 'help interp1' en tu ventana de comandos para que veas la descripción completa.
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
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Interpolar en una tabla de datos

Publicado por Dave (1094 intervenciones) el 08/03/2011 02:33:40
Hola Juan;

Además puedes interpolar considerando algunos metodos de interpolación, Aqui las opciones


yi = interp1(x,Y,xi,method) interpolates using alternative methods:

'nearest' Nearest neighbor interpolation

'linear' Linear interpolation (default)

'spline' Cubic spline interpolation

'pchip' Piecewise cubic Hermite interpolation

'cubic' (Same as 'pchip')

'v5cubic' Cubic interpolation used in M

Saludos
Dave
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

Interpolar en una tabla de datos

Publicado por Marco A. Villarroel (5 intervenciones) el 01/05/2018 19:30:19
Saludos a todos. Necesito sus ayudas para realizar la siguiente interpolacion

tengo este codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clc,clear all
x=[0;75;75;150;150;225;225;300;300;375;375;450;450;525;525;600];
y=[0;30;0;60;10;90;15;105;20;90;15;60;10;30;0;0];
figure(9);
plot(x,y,'.b', 'MarkerSize', 28)
for k=1:size(cord,1)
a=int2str(k);
text (cord(k,1)+3, cord(k,2)+3, a)
end
 
dx=0:0.1:600;
p=zeros(n,n);
 
barr=[1 3;2 3;2 5;5 4;4 7;6 7;6 9;8 9;9 10;10 11;11 12;12 13;13 14;14 15;15 16];
for k=1:size(barr,1)
X(2*k-1,1)=barr(k,1);
X(2*k,1)=barr(k,2);
end
 
for k=1:size(X,1)
P(k,1)=cord(X(k,1),1);
P(k,2)=cord(X(k,1),2);
end
plot(P(:,1),P(:,2),'-r','LineWidth', 1.5)
hold on


Lo que necesito es interpolar para que la grafica muestre un grafico casi de lineas rectas y no puntos separados.
No lo he logrado y no se como realizarlo
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Interpolar en una tabla de datos

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 09/05/2018 01:46:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
clc,clear
x=[0;75;75;150;150;225;225;300;300;375;375;450;450;525;525]';
y=[0;30;0;60;10;90;15;105;20;90;15;60;10;30;0]';
k1=1; k2=1;
for i=1:length(x)-1
    if y(i)<y(i+1)
     x1(k1)=x(i);
     y1(k1)=y(i);
     k1=k1+1;
    else
     x2(k2)=x(i);
     y2(k2)=y(i);
     k2=k2+1;
    end
end
hold on
x1=[x1 x(end)];
y1=[y1 y(end)];
plot(x,y,'.b', 'MarkerSize', 28)
p1 = polyfit(x1,y1,7);
x3=linspace(x1(1),x1(end),200);
y3 = polyval(p1,x3);
plot(x3,y3,'*g')
 
x2=[x(1) x2  ];
y2=[y(1) y2 ];
plot(x2,y2,'.b', 'MarkerSize', 28)
p2 = polyfit(x2,y2,6);
x4=linspace(x2(1),x2(end),200);
y4 = polyval(p2,x4);
plot(x4,y4,'*g')
 
hold off
grid on


Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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