Matlab - crear funcion a partir de grafica matlab

   
Vista:

crear funcion a partir de grafica matlab

Publicado por alexis (2 intervenciones) el 29/03/2016 16:46:58
Sin-titulo

Hola, necesito una ayuda urgente, ojalá me puedan colaborar, necesito recrear la gráfica adjunta en matlab, necesito que sea a través de intervalos en lo posible ya que necesito hacerle unas transformaciones a la señal, como lo muestro en el siguiente ejemplo:

f=inline('(5).*(0<=t).*(t<2)+(t+3).*(2<=t).*(t<3)+(3*t-3).*(3<=t).*(t<6)'); esto solo es un ejemplo

El código lo llevo hasta el momento como esta a continuación, he intentado usar arrays con los puntos establecidos y funciona al usar la función plot(xt,yt), la gráfica exactamente, pero como necesito hacer las transformaciones pertinentes de f2,f3,f4 y f5 no puedo usarlos ya que no podría realizar esas transformaciones sin que este establecido en intervalos en f como el ejemplo de arriba.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clc, clear
t=(-4:1:4)
i=(1:1:13)
xt=[-4,-3,-3,-2,-2,-1,0,1,1,2,2,3,4]
yt=[ 0, 0,-2,-1, 3, 2,2,2,0,1,0,0,0]
 
f=inline('(0).*(t<=-3)')
 
%f2=2.5*f(0.5*t-3)-4
%f3=f(-t)+2
%f4=3.5*f((-3*t/2)-1)+(5/3)
%f5=(-1/3)*f((-2*t/3)+(5/3))+(2/3)
plot(t,f(t))
%plot(xt,yt)
%plot(t,f(t),'b',t,f1,'o',t,f2,'r',t,f3,'g',t,f4,'y',t,f5,'m')
grid on
axis([-4 4 -2 3])

El problema es que si establezco todos los puntos como intervalos o reglas, cuando t toma un valor vertical como se ve en el punto(-3,-2) se va directamente a la rampa y no gráfica el valor del punto(-3,0), entonces la gráfica no queda al 100%. Espero no confundir mucho y que alguien entienda lo que estoy haciendo y quiero hacer entender.

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

crear funcion a partir de grafica matlab

Publicado por alexis (2 intervenciones) el 29/03/2016 19:03:24
Ya lo resolví, lo publico, tal vez algún día a otra persona le sirva.

1
2
3
4
5
6
7
8
9
10
11
clc, clear
 
t=(-4:0.001:4)
f=inline('(0).*(t<-3)+(-2).*(t==-3)+(t+1).*(t>-3 & t<-2)+(3).*(t==-2)+(-(t-1)).*(t>-2 & t<-1)+(2).*(t>=-1 & t<=1)+(0).*(t==1)+(t-1).*(t>1 & t<=2)')
f1=2.5*f(0.5*t-3)-4
f2=f(-t)+2
f3=3.5*f((-3*t/2)-1)+(5/3)
f4=(-1/3)*f((-2*t/3)+(5/3))+(2/3)
plot(t,f(t),'b',t,f1,'m',t,f2,'r',t,f3,'g',t,f4,'y')
grid on
axis([-4 4 -2 3])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar