Matlab - GUI

 
Vista:
sin imagen de perfil
Val: 12
Ha aumentado su posición en 8 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

GUI

Publicado por Luis (4 intervenciones) el 04/01/2021 04:13:06
Hola, soy nuevo en matlab y tengo una duda sobre el como mostrar valores en una GUI.
Tengo como tarea realizar una GUI que me permita calcular los coeficientes de fourier de cualquier función periódica y graficarla. el problema que tengo es que al momento de hacer el calculo de los coeficientes an y bn me salen numeros muy grandes que no tienen que ver con el resultado ya que con el mismo codigo realice el calculo de la función y no me da con valores tan grandes. No se si sea un error en el calculo ya que use los mismos comandos para resolver la serie pero esta vez los datos no se introducen por medio de la GUI y me dan los valores que son. Quisiera saber porque me dan resultados distintos si es el mismo código con el el cálculo la serie y es la misma función.Agradezco cualquier explicación o guia que me den, tambien me seria de utilidad el saber como puedo mostrar los resultados de los coeficientes de la serie de una manera un poco más estética que con el static text o como podría modificar el static text para que me muestre los valores de los coeficientes. Este es el codigo para calcular la serie.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
syms t n;
p=pi;
T=1;
wo=2*p/T;
a0=int(exp(-t),t,0,T)/T
an=int(exp(-t)*cos(n*wo*t),t,0,T)*2/T
bn=int(exp(-t)*sin(n*wo*t),t,0,T)*2/T
 
sum=0;
 
%Suma aproximada
for k=1:10
 ank=subs(an,n,k);
 bnk=subs(bn,n,k);
 sum=sum+ank*cos(k*t)+bnk*sin(k*t);
end
suma=a0+sum; %añadimos el término independiente


Y estos son los valores que me da, los cuales son correctos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> fourier
 
a0 =
 
1 - exp(-1)
 
 
an =
 
(2*(exp(-1)*(exp(1) - cos(2*pi*n)) + 2*n*pi*exp(-1)*sin(2*pi*n)))/(4*pi^2*n^2 + 1)
 
 
bn =
 
-(2*(exp(-1)*sin(2*pi*n) - n*pi*exp(-1)*(2*exp(1) - 2*cos(2*pi*n))))/(4*pi^2*n^2 + 1)



Y este es el codigo de la GUI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function pushbutton2_Callback(hObject, eventdata, handles)
syms t n;
p=pi;
fun=get(handles.edit1,'string');
T=get(handles.edit2,'string'); %periodo
%intervalos de t
To=get(handles.edit3,'string');
to=get(handles.edit4,'string');
 
 
wo=2*p/T;
a0=int(fun,t,to,To)/To
an=int(fun*cos(n*wo*t),t,0,T)*2/To
bn=int(fun*sin(n*wo*t),t,0,T)*2/To


Estos son los valores que me muestra

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> HMI
 
a0 =
 
1 - exp(-1)
 
 
an =
 
(2*(49*exp(-1)*(49*exp(1) - 49*cos((2*pi*n)/49)) + 98*n*pi*exp(-1)*sin((2*pi*n)/49)))/(4*pi^2*n^2 + 2401)
 
 
bn =
 
-(2*(2401*exp(-1)*sin((2*pi*n)/49) - 49*n*pi*exp(-1)*(2*exp(1) - 2*cos((2*pi*n)/49))))/(4*pi^2*n^2 + 2401)
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
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

GUI

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/01/2021 19:26:31
1
2
3
T=str2double(get(handles.edit2,'string'));
To=str2double(get(handles.edit3,'string'));
to=str2double(get(handles.edit4,'string'));
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

GUI

Publicado por luis (1 intervención) el 09/01/2021 01:58:30
Eso mismo probé justo después de publicar esto y me funciono. Pero muchas gracias por responder
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
sin imagen de perfil
Val: 12
Ha aumentado su posición en 8 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

GUI

Publicado por Luis (4 intervenciones) el 09/01/2021 02:02:55
Eso mismo probé justo después de publicar esto y me funciono. Pero muchas gracias por ayudar.
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