Matlab - ayuda con GUIDE!!!!

 
Vista:

ayuda con GUIDE!!!!

Publicado por Aleifox (3 intervenciones) el 03/11/2005 19:19:36
Hola!! Mi problema es que ten go hecho un programa en matlab que me carga un fichero y me devuelve las variables que necesito de el, pero estoy intentarlo hacerlo mas bonito atrves de la interface grafica Guide, el problema es que cada callback es una funcion independiente y no se como pasar las variables de una funcion a otra. Ejemplo:

En la ventana guide tengo dos botones : uno CARGAR y el otro es un cuadro de texto

Cuando le doy a cargar( llamo a su funcion callback) me carga un archivo y me saca una variable que llamo FRM y quiero que la muestre en el cuadro de texto( que es otro elemento)..y no se como hacerlo.

Antes con un programa normal todas las variabñes eran gobales, pero ahora son loacles y no se como mandarlas de un elemento a otro.

alguien me pude ayudar???
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:ayuda con GUIDE!!!!

Publicado por nehomar (3 intervenciones) el 03/11/2005 22:23:51
nombralas de las siguiente manera para que la puedas utilizar en cualquiera de las funciones

handles.FRM

de esdta manera podras utilizarlas como quieres.
espero que te sirva
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

RE:ayuda con GUIDE!!!!

Publicado por Batman (15 intervenciones) el 30/09/2009 11:42:59
Si las declaras como globales en cada callback puedes utilizar el valor de la variable luego.

Callback(...)

global FRM

y la usas luego

ÇPor ejemplo:

% --- Executes on button press in SeleccionarNodo.
function SeleccionarNodo_Callback(hObject, eventdata, handles)
% hObject handle to SeleccionarNodo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

global MY_GRAFO;
global MY_NODOS;
global MY_ARISTAS;
global MY_SERVICIOS;
global objNodoModificar;

OTRA FUNCION DENTRO DEL GUIDE donde uso las variables globales.

% --- Executes on button press in ActualizarNodo.
function ActualizarNodo_Callback(hObject, eventdata, handles)
% hObject handle to ActualizarNodo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

global MY_GRAFO;
global MY_NODOS;
global MY_ARISTAS;
global MY_SERVICIOS;
global objNodoModificar;

posLibreNodo = 0;
posLibreServ = 0;

% Este boton Actualiza los datos del Nodo, el Peso, incluso si se quiere las coordenadas.

% Recojo los valores introducidos en los campos Edit Text del Nodo, en
% variables auxiliares (nombreaux, pesoaux, coordXaux y coordYaux), que luego mas tarde
% usaré para crear un Nodo auxiliar: nuevoNodo.
nombreaux=get(handles.NodoNombre,'String');
pesoaux=str2num(get(handles.NodoPeso,'String'));
coordXaux=str2num(get(handles.NodoCoordX,'String'));
coordYaux=str2num(get(handles.NodoCoordY,'String'));

% Almaceno los datos del Nodo en una variable auxiliar: nuevoNodo.
% Creo un verticeNodo auxiliar nuevoNodo. nuevoNodo contiene los datos
% del nodo que quiero insertar en la lista de nodos del grafo: MY_GRAFO
nuevoNodo=verticeNodo(nombreaux,pesoaux,coordXaux,coordYaux);

% Ya tengo el Nuevo NODO CREADO.
% Ahora voy a coger todas las ARISTAS Formadas por ese NODO en el GRAFO.
MY_ARISTAS=aristasg(MY_GRAFO);

% Ahora tomo todas las ARISTAS que estan formadas por ese NODO, ya sea NODO
% origen o NODO destino, porque voy a formar otra vez la lista ARISTAS con
% el nuevo NODO, y luego volver a montar el GRAFO.
listArFormNodomdf=aristasenNodo(MY_ARISTAS,objNodoModificar);
% COMENTARIO: objNodoModificar es el antiguo NODO
% COMENTARIO: nuevoNodo es el nuevo NODO a insertar.

%Recorro la lista con las ARISTAS que estan formadas por ese Nodo
listRes=arista();
for i=1:length(listArFormNodomdf)
% Esta variable auxiliar toma la ARISTA a modificar
aux=listArFormNodomdf(i);
% Compruebo ei el NODO forma el destino de la Arista a modificar.
if chekearVerticeNodo(objNodoModificar,destinoNodoArista(aux))
listRes(i)=arista(origenNodoArista(aux),nuevoNodo,distancia(aux));
else % Compruebo si el NODO forma el origen de la Arista
listRes(i)=arista(nuevoNodo,destinoNodoArista(aux),distancia(aux));
end
end
% La lista de las nuevas ARISTAS, formadas por la modificación del NODO es
% listRes...

% Siguiente paso es comprobar que la posicion elegida para modificar el
% Nodo no está ocupada por otro Nodo o por un Servicio.

% Antes de insertar el Nodo hago un control de posiciones por si la nueva
% posición ya está ocupada por un Nodo o por un Servicio.

% Compruebo que esa posicion no esta ya ocupada por un SERVICIO anteriormente.

% Para ello lo que hago es:
% 1º creo una lista con las posiciones de los servicios (LISTA DE NODOS).

lisPosServ=verticeNodo();
for i=1:length(MY_SERVICIOS)
lisPosServ(i)=posicionServ(MY_SERVICIOS(i));
end

% 2º Compruebo si la posición dada está en la lista de posiciones de Servicios del Grafo.

if posicionLibre(lisPosServ,coordenadaX(nuevoNodo),coordenadaY(nuevoNodo)) == 1
posLibreServ=1;
end

% 3º Compruebo si la posición dada está en la lista de posiciones de Nodos del Grafo.

if posicionLibre(MY_NODOS,coordenadaX(nuevoNodo),coordenadaY(nuevoNodo)) == 1
posLibreNodo=1;
end

% En este caso la posición (X,Y) donde quiero introducir el Servicio no
% está libre. (HAY UN NODO Y UN SERVICIO).
% Saco un mensaje por pantalla preguntando al usuario
% que quiere hacer. Si almacenar el Servicio aunque esté la posición
% ocupada por otro Servicio o no almacenarla.
if (posLibreNodo == 1) && (posLibreServ == 1)

% Posición Libre. NO HAY NODO INSERTADO NO HAY SERVICIO INSERTADO.

% Ahora elimino las ARISTAS formadas por el antiguo NODO.
MY_ARISTAS=eliminarArista(MY_ARISTAS,listArFormNodomdf);
% Ahora elimino el Antiguo Nodo que ya he modificado, lo saco de la lista
% de NODOS.
MY_NODOS=eliminarVerticeNodo(MY_NODOS,objNodoModificar);

% Inserto el nuevo NODO
MY_NODOS=anadirVerticeNodo(MY_NODOS,nuevoNodo);
% Añado las nuevas Aristas a la lista de ARISTAS.
MY_ARISTAS=anadirArista(MY_ARISTAS,listRes,MY_NODOS);


Por cierto me puedes enseñar la parte donde especificas la carga del fichero?
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

RE:ayuda con GUIDE!!!!

Publicado por jean (1 intervención) el 12/07/2014 16:17:04
excelente ayuda 100% efectiva!!
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