Matlab - Matlab GUI

   
Vista:

Matlab GUI

Publicado por Aritz (1 intervención) el 24/03/2009 11:06:31
Estamos desarrollando para nuestro proyecto fin de carrera una GUI de matlab para análisis de señales. Mediante unos checkbox damos al usuario la opción de elegir diferentes cálculos estádisticos. La detección de estos checkbox es correcta y al ejecutar el programa de ejecución los álculos se realizan correctamente. El problema viene al guardar el valor de la variable. El código es el siguiente:
/******************** Main *************************************/
if (handles.optStats.media==1)
calcularMedia(hObject, handles);
end
if (handles.optStats.max==1)
calcularMax(hObject, handles);
end
if (handles.optStats.min==1)
calcularMin(hObject,handles);
end

/************** Funciones estádisticas *************************/
function calcularMedia(hObject, handles)
if (length(handles.result.ch0.signal) == handles.muestreo.nMuestras)
media = 0;
for i=1:1:length(handles.result.ch0.signal)
media = media + handles.result.ch0.signal(i);
end
media = media / i;
handles.result.ch0.media = media;
guidata(hObject, handles);
end
if (length(handles.result.ch1.signal)==handles.muestreo.nMuestras)
media = 0;
for i=1:1:length(handles.result.ch1.signal)
media = media + handles.result.ch1.signal(i);
end
media = media / i;
handles.result.ch1.media = media;
guidata(hObject, handles);
end

function calcularMax(hObject, handles)
if (length(handles.result.ch0.signal) == handles.muestreo.nMuestras)
max = handles.result.ch0.signal(1);
for i=1:1:length(handles.result.ch0.signal)
if(handles.result.ch0.signal(i) > max)
max = handles.result.ch0.signal(i);
end
end
handles.result.ch0.max = max;
guidata(hObject, handles);
end
if (length(handles.result.ch1.signal) == handles.muestreo.nMuestras)
max = handles.result.ch1.signal(1);
for i=1:1:length(handles.result.ch1.signal)
if(handles.result.ch1.signal(i) > max)
max = handles.result.ch1.signal(i);
end
end
handles.result.ch1.max = max;
guidata(hObject, handles);
end

Como podeís ver, en la parte del Main que nos funciona, dependiendo de las opciones elegidas por el usuario llama a la función pertinente para el análisis estádistico seleccionado. Esto el programa lo ejecuta bien.
Cuando entra en cada función el cálculo se hace correctamente, pero no guarda el valor obtenido en la variable handles.result.cho.xxxxxx en los siguientes casos:
1.- Si sólo está elegida una opción, no se guarda el valor si no es que ejecutamos 2 veces el programa.
2.- Si hay varias opciones elegidas, sólo se guarda el valor del último cálculo realizado después de 2-3 ejecuciones.
El problema está en como almacenamos el valor, pero hasta ahora, en todos los demás datos esta forma que usamos aquí nos funciona.
¿Alguién sabe como poder solucionarlo?
Gracias de antemano
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:Matlab GUI

Publicado por Manuel (2 intervenciones) el 28/05/2009 18:28:22
Si nosd puede dar aciendo programa en matlab en interfases graficas de movimiento parabolico
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