Matlab - Pedir archivo .mat a usuario en el entorno guide

 
Vista:
sin imagen de perfil

Pedir archivo .mat a usuario en el entorno guide

Publicado por Alberto (10 intervenciones) el 13/10/2015 18:06:44
Buenas tardes,

Estoy intentando crear una GUI desde el panel de blank GUI y quisiera pedir al usuario que introdujera un archivo .mat , pero no se exactamente como hacerlo.


Si alguien pudiese ayudarme se lo agradeceria.
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
sin imagen de perfil

Pedir archivo .mat a usuario en el entorno guide

Publicado por Alberto (10 intervenciones) el 17/10/2015 10:08:51
Buenos días,

Ante todo gracias por la respuesta anterior me ha servido de ayuda, pero me ha surgido otro problema , el archivo .mat , tiene 3 variables, dos de las cuales son columnas de 48 números y la otra variable consta solo de un numero, y a continuación quiero usar esta función :

Ea_a = interp1(Ie,Ea,Ie_a,'spline');

donde Ie y Ea son variables del archivo .mat, , ¿habría algún problema en usar esta función de interpolación en mi guide?

Como era de esperar me sale un error. ¿es posible que el problema este en la forma de guardar estas variables?

Gracias nuevamente.
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Pedir archivo .mat a usuario en el entorno guide

Publicado por Royeth (1818 intervenciones) el 18/10/2015 21:03:23
qué tipo de error te sale? puede ser que desees interpolar fuera de los límites de tus archivos y por eso te salga error
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

Pedir archivo .mat a usuario en el entorno guide

Publicado por Alberto (10 intervenciones) el 18/10/2015 21:23:42
Este es el error que me sale en la Command Window:

--------------------------------------------------------------------

Undefined function or variable 'Ie'.

Error in MOTORCCSHUNT1>CALCULAR1_Callback (line 224)
Ea_a = interp1(Ie,Ea,Ie_a,'spline');

Error in gui_mainfcn (line 95)
feval(varargin{:});

Error in MOTORCCSHUNT1 (line 42)
gui_mainfcn(gui_State, varargin{:});

Error in @(hObject,eventdata)MOTORCCSHUNT1('CALCULAR1_Callback',hObject,eventdata,guidata(hObject))


Error while evaluating uicontrol Callback

--------------------------------------------------------------------

He usado un Push botton para cargar el archivo .mat :

function MAT_Callback(hObject, eventdata, handles)

[nombre,carpeta]=uigetfile('*.mat');
load(strcat(carpeta,nombre))

------------------------------------------------------------------

Con respecto al método de interpolación la he usado en un Script con los mismos datos y variables, y es correcta.
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

Pedir archivo .mat a usuario en el entorno guide

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 18/10/2015 22:20:17
Si el script es correcto, entonces deberías subir el código completo de tu archivo guide, tanto fig y m.
Porque brindas muy poca informacion al hacer tu pregunta.



Saludos
JOSE JEREMÍAS CABALLERO
Asesoría online en Matlab
Servicios de programación matlab
[email protected]
Estimado Usuario, el correo es para servicios de cursos, asesoría y programación. Toda ayuda gratuita es vía foro.


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

Pedir archivo .mat a usuario en el entorno guide

Publicado por alberto (10 intervenciones) el 18/10/2015 22:43:49
Buenas,

Le resumo un poco mi idea para intentar ser mas preciso con mi consulta, quiero que el usuario cargue un archivo .mat , con tres variables , dos de las cuales son columnas , una vez cargado ese archivo y introducido los valores en el panel , a través del botón calcular1 debería de darme un resultado y es ahí donde me salta el error diciendo que no reconoce las variables del archivo .mat.

He adjuntado tanto el código completo , como el script y el archivo .mat.

Gracias y disculpen las molestias.
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Pedir archivo .mat a usuario en el entorno guide

Publicado por Royeth (1818 intervenciones) el 18/10/2015 22:57:49
tienes varios errores en el código

creo que con esta correción que le hice puede funcionar si no es así me das valores del panel para probarlo y poder ayudarte :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Ie=handles.Ie;
n0=handles.n0;
Ea=handles.Ea;
TENSION1=str2double(get(handles.TENSION1,'string'));
INTESIDAD1=str2double(get(handles.INTESIDAD1,'string'));
RINDUCIDO1=str2double(get(handles.RINDUCIDO1,'string'));
RINDUCTOR1=str2double(get(handles.RINDUCTOR1,'string'));
RAJU1=str2double(get(handles.RAJU1,'string'));
%VACIO ECUACIONES
E_a = TENSION1;
Ie_a = (TENSION1/(RINDUCTOR1+RAJU1));
Ea_a = interp1(Ie,Ea,Ie_a,'spline');
RPM1 = ((E_a*n0)/Ea_a);
set(handles.RPM1,'string',RPM1);
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

Pedir archivo .mat a usuario en el entorno guide

Publicado por alberto (10 intervenciones) el 18/10/2015 23:17:22
Es correcto

Una ultima pregunta, ¿el uso de eval no era correcto ?

Gracias nuevamente.
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Pedir archivo .mat a usuario en el entorno guide

Publicado por Royeth (1818 intervenciones) el 18/10/2015 23:26:41
sí puedes usar eval pero al desarrollar un software no es recomendable porque por ejemplo si tú colocas en algún edit text por ejemplo :
1
plot(peaks(100))
te va a salir una gráfica porque eso te evalua comandos , puedes hacer cualquier comando y te lo evalúa entonces mejor es usar str2double que convierte el string a formato numérico que es lo que necesitas solo por seguridad y precisión es mejor

un saludo
https://www.facebook.com/royethmatlab/
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

Pedir archivo .mat a usuario en el entorno guide

Publicado por alberto (10 intervenciones) el 19/10/2015 08:32:30
Gracias Jose

Acabo de ver tu código y me ha surgido una duda, a la hora de cargar el archivo .mat lo has guardado en una variable, ¿es por alguna razón en especial?

Un saludo.
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

Pedir archivo .mat a usuario en el entorno guide

Publicado por Jose Jeremias Caballero (5917 intervenciones) el 19/10/2015 13:26:05
En concreto. El codigo funciona. Es parte usuario del escrudiñar la solución para entender.o
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Pedir archivo .mat a usuario en el entorno guide

Publicado por Royeth (1818 intervenciones) el 18/10/2015 22:44:41
ah bueno fíjate entonces que la función donde cargas los datos sea la misma donde ejecutas la interpolación , eh ahí puede estar el problema aunque puede ser pasada a un handles también de todas maneras voy a revisar el código que adjuntaste

pero coloca valores de las cajas de texto para probarlo
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