Matlab - reemplazo de nombre de un m.file por medio del popu-menu

 
Vista:

reemplazo de nombre de un m.file por medio del popu-menu

Publicado por Paco (1 intervención) el 16/07/2013 16:37:00
Buen día:
Estoy introduciéndome en el uso de MatLab y específicamente en la creación de una GUIDE, deseo realizar una aproximación a partir de datos experimentales.
Tengo el sistema de ecuaciones diferenciales que describe un modelo, las cuales incluyen una variable que deseo seleccione el usuario de una lista ya establecida por medio del uso de un popu-menu (cada una de las ODES se encuentran guardadas previamente en un script respectivamente), después se realizara la aproximación usando un push botton con la instrucción ode45.
Deseo saber si existe alguna instrucción o comando que me permita cambiar el nombre del m.file que contiene las ODES a integrar, es decir, al seleccionar la opción en el popu-menu el nombre del archivo sea reemplazado. Muestro lo siguiente a manera de ejemplo, pues sé que es incorrecto.

c=get(handles.popupmenu,'value');
switch c
case 1
'ODES1’== ‘a’
case 2
'ODES2’== ‘a’
case 3
'ODES3’== ‘a’
otherwise
'ODES1’== ‘a’
end

function Aproximar_Callback(hObject, eventdata, handles)

[t,datos] = ode45('a',t,So);


Donde ‘ODES 1,2,3,4’ corresponden al nombre del archivo con las ecuaciones diferenciales a integrar, y ‘a’ es el nombre de reemplazo.

Espero darme a entender, de antemano 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
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

reemplazo de nombre de un m.file por medio del popu-menu

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 16/07/2013 21:22:44
c=get(handles.popupmenu,'value');
switch c
case 1
a=ODES1 ;
case 2
a=ODES2;
case 3
a=ODES3;
otherwise
a=ODES1;
end
handles.a=a;
guidata(hObject, handles);

function Aproximar_Callback(hObject, eventdata, handles)
a=handles.a
t=falta definir
So=falta definir
además t So depende del intervalo donde esta definido la edos y su respectivo valor inicial.
[t,datos] = ode45(a,t,So);

Esto seria en cierta manera como debería ser tu código. No esta probado en matlab.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

menu de ode45

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/07/2013 14:26:33
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
c=get(handles.popupmenu,'value');
 switch c
 case 1
 a='ODES1' ;
 t=[x1 x2]; S0=[y01 y02];
 
 case 2
 a='ODES2';
 t=[x1 x2]; S0=[y01 y02];
 
 case 3
 a='ODES3';
 t=[x1 x2]; S0=[y01 y02];
 
 otherwise
 a='ODES1';
 t=[x1 x2]; S0=[y01 y02];
 end
 
 handles.a=a;
handles.t=t;
handles.S0=S0;
 
 guidata(hObject, handles);
 
 function Aproximar_Callback(hObject, eventdata, handles)
 a=handles.a
 t=handles.t
 So=handles.S0;
 
 
 [t,datos] = ode45(a,t,So);


Esto seria en cierta manera como debería ser tu código. No esta probado en matlab.



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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