Matlab - Error ??? Output argument "seleccion" (and maybe others) not assigned during call

   
Vista:

Error ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por Jorge (11 intervenciones) el 25/04/2015 17:16:23
Hola, buenas tardes, mi problema es el siguiente:

Tengo un .txt con muchos datos sísmicos, sería de la siguiente forma ( esto solo son las 4 primeras filas del fichero)

1
2
3
4
01-Jan-13	00:21:47	38.0352	-3.2695		4	1.2	4
01-Jan-13	01:03:04	37.7515	-2.5077		9	1.9	4
01-Jan-13	01:44:49	38.0378	-3.2633		3	2.0	4
01-Jan-13	01:48:19	38.0239	-3.2800		4	0.7	4


donde la 3 y 4 columna son latitudes y longitudes, respectivamente y quería hacer un filtro para seleccionar una determinada zona geográfica, mi funcion principal es la siguiente, se llama Paso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clear
fopen('TerremotosDef.txt');
C = textscan(ans, '%s %s %s %s %s %s %s');
fclose('all');
 
 
%ahora tenemos todos los elementos en la matriz C tipo cell
 
for i=1:7
 
    A(:,i)=C{1,i};
end
 
n=size(A,1);
 
latmayor=-1;
latmenor=-2;
lonmayor=38.5;
lonmenor=37;
 
seleccion=ventana(A,latmenor, lonmenor, latmayor, lonmayor);

y la función ventana es la siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function [seleccion]=ventana(A,latmenor, lonmenor, latmayor, lonmayor)
 
n=size(A,1);
indice=1;
for i=1:n
 
if  str2num(A{i,3}) >= latmenor
    if str2num(A{i,4})>= lonmenor
        if str2num(A{i,3}) <= latmayor
            if str2num(A{i,4}) <= lonmayor
 
             seleccion(indice,:)=A(i,:);
             indice=indice+1;
 
            end
        end
    end
end
end

mi problema consiste en que cuando ejecuto la funcion Paso me da los siguientes errores:

Paso
Error in ==> ventana at 3
n=size(A,1);

??? Output argument "seleccion" (and maybe others) not assigned during call to "C:\Program
Files\MATLAB\R2010b\ventana.m>ventana".

Error in ==> Paso at 23
seleccion=ventana(A,latmenor, lonmenor, latmayor, lonmayor);

me pregunto si estos errores se deben a algún problema de la ubicacion de los ficheros, aunque me he asegurado de que todos los archivos estén en la carpeta de MATLAB o es problema de codigo, sería una ayuda imprescindible puesto que es para el trabajo de fin de grado, deseo utlizar todo esto para implementar una red neuronal con el nntool de matlab, muchísimas gracias de antemano.

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

Error ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por JESUS jesus.royeth@gmail.com (742 intervenciones) el 25/04/2015 23:45:11
Hola jorge monta el txt y los archivos que puedas para poder ayudartr en tu requetimiento
Saludos
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 ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por jorge (11 intervenciones) el 27/04/2015 11:34:26
Hola Jesus, adjunto el txt y los archivos que dijiste

Gracias de antemano
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 JESUS

Error ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por JESUS jesus.royeth@gmail.com (742 intervenciones) el 27/04/2015 20:53:14
no me había fijado , no puedes hacer esto :

1
n=size(A,1);

debes hacer esto

1
n=length(A(:,1))


no he mirado el archivo adjunto, lo voy a revisar , alguna otra cosa te comunico

saludos
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 ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por jorge (11 intervenciones) el 27/04/2015 21:39:00
Hola Jesus, he cambiado lo que me has dicho y sale exactamente el mismo error, puede ser que sea por el tipo de datos? es que me estoy volviendo loco porque tengo hecho algo practicamente igual y esta hecho de la primera forma que puse,incluso con n=size,no daba ningun error y seleccionaba perfecto, lo unico que cambia es el txt, y no se si es por el tipo de datos de las columnas
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 JESUS

Error ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por JESUS jesus.royeth@gmail.com (742 intervenciones) el 27/04/2015 21:58:54
Listo ya detecté el error haciendo lo que se llama "prueba de la caja blanca" el problema radica en que estas 4 condiciones que las tienes unidas con función lógica 'and' no se cumplen en ningún ciclo del for por lo que la variable selección queda sin definir:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function [seleccion]=ventana(A,latmenor, lonmenor, latmayor, lonmayor)
 
n=size(A,1);
indice=1;
for i=1:n
 
if  str2num(A{i,3}) >= latmenor %condición 1
    if str2num(A{i,4})>= lonmenor %condición 2
        if str2num(A{i,3}) <= latmayor %condición 3
            if str2num(A{i,4}) <= lonmayor %condición 4
 
             seleccion(indice,:)=A(i,:);  %el programa no logra llegar aquí  en ningún ciclo
             indice=indice+1;
 
            end
        end
    end
end
end
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 ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por jorge (11 intervenciones) el 27/04/2015 22:06:38
y entonces qué hago para que funcione? mira, te adjunto el otro que tenia hecho de antes y funciona bien, que es practicamente igual que este.

Gracias de antemano
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 JESUS

Error ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por JESUS jesus.royeth@gmail.com (742 intervenciones) el 27/04/2015 22:01:52
probando tu función con la función lógica 'or' si se ejecuta sin ningún error es decir cambiando la fución ventana por esta, pero tal vez no sea lo que requieras, solo es para demostrarte que el fichero no tiene problemas:

1
2
3
4
5
6
7
8
9
10
11
12
13
function [seleccion]=ventana(A,latmenor, lonmenor, latmayor, lonmayor)
 
n=size(A,1);
indice=1;
for i=1:n
 
if  str2num(A{i,3}) >= latmenor || str2num(A{i,4})>= lonmenor || str2num(A{i,3}) <= latmayor || str2num(A{i,4}) <= lonmayor
             seleccion(indice,:)=A(i,:);
             indice=indice+1;
 
 
end
end
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 ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por jorge (11 intervenciones) el 27/04/2015 22:21:33
Si, lo he probado y funciona pero no hace la selección que necesito, me devuelve el mismo archivo. Muchas gracias por tu tiempo, me quebraré un poco más la cabeza en estos días a ver si consigo resolverlo

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 JESUS

Error ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por JESUS jesus.royeth@gmail.com (742 intervenciones) el 27/04/2015 22:25:41
Correcto , vi el otro archivo que me enviaste y pues el error está en el planteamiento del problema , pero ya eso hace parte de lo que tú quieres obtener

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

Error ??? Output argument "seleccion" (and maybe others) not assigned during call

Publicado por jorge (11 intervenciones) el 27/04/2015 22:35:52
No si el planteamiento es exactamente el mismo, tiene que hacer lo mismo en el que funciona y en el que no, seleccionar con unos determinados valores de latitud y longitud, no llego a entender porqué no funciona la verdad.

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