Matlab - Error while evaluating uimenu Callback

 
Vista:

Error while evaluating uimenu Callback

Publicado por Elencho (2 intervenciones) el 27/12/2012 14:07:24
Hola! Estoy haciendo un programa para un trabajo pero no consigo que funcione, seguro que es un error muy tonto, pero creo que me podeis ayudar.

El programa trata de llamar a otra función con variable de entrada 'h'. La primera vez si funciona (inp==0) , pero la segunda vez no (inp == 1). H es una imagen.

Copio el código:

function nep(inp)
%Programas asociados a 'perfil': 'nep.m' y 'nuv.m' (más abajo)

if inp == 0 %Adquirir

[fname,pname] = uigetfile('*.*','Adquirir imagen...');

h = cat(2,pname,fname);
h = imread(h); h = double(h);
hold off;
imshow(h,[]), axis image, axis on ;

nuv2(h) %FUNCIONA!!

elseif inp == 1
nuv2(h) % FALLO!!
end



>>??? Undefined function or variable "h".

Error in ==> NEP at 19
nuv2(h) % FALLO!!

??? Error while evaluating uimenu Callback




Gracias por la ayuda!
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

Error while evaluating uimenu Callback

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 27/12/2012 17:52:20
La respuestas es obvia.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function nepcaballero(inp)
 %Programas asociados a 'perfil': 'nep.m' y 'nuv.m' (más abajo)
 if inp == 0 %Adquirir
     [fname,pname] = uigetfile('*.*','Adquirir imagen...');
     h=cat(2,pname,fname);
     h=imread(h);
     h = double(h);
     hold off;
     imshow(h,[]),
     axis image,
     axis on ;
     nuv2(h) %FUNCIONA!!
 
 elseif inp == 1
    nuv2(h) % FALLO!!
 end



El problema es ámbito de variables. Cuando vale cero, tu creas una variable h, pero cuando vale uno, no creas variable h, por lo tanto el error es obvio.

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programación matlab
[email protected]

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

Error while evaluating uimenu Callback

Publicado por Elencho (2 intervenciones) el 28/12/2012 14:42:59
Ok, de acuerdo. Quiero usar la misma variable cuando inp==1.

Se trata de un programa que dibuja una línea sobre una imagen. Cuando inp ==0 tomo la imagen, y seguidamente dibujo una línea con el ratón. Pero al pulsar "Nueva linea", quiero dibujar sobre esa misma imagen otra línea distinta. Necesito entonces la misma imagen "h", para pasarla a la funcion nuv2(h) que dibuja la línea, pero ahora inp == 1.

¿Cómo puedo modificar el código?

Muchas gracias!!
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