Matlab - salida de datos despues de un bucle

 
Vista:

salida de datos despues de un bucle

Publicado por rosa (6 intervenciones) el 29/02/2012 17:52:11
Hola a todos...después de hacer un bucle con la condición if me imprime en pantalla dos casos de coincidencia..sin embargo en los ficheros me guarda solo el último de ello..como puedo guardar los dos o más que apareciesen?.. muchas gracias de antemano por la atención.
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

salida de datos despues de un bucle

Publicado por Camilo (52 intervenciones) el 29/02/2012 18:16:12
Estimada rosa:

esta consulta es respecto a la misma pregunta anterior?????


cuentame que es lo que quieres hacer y te ayudo.

adjunta el codigo que has desarrollado.

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

salida de datos despues de un bucle

Publicado por camilo (52 intervenciones) el 29/02/2012 18:36:29
Hola Rosa:

Tomare el codigo que te adjunte en el mensaje anterior y le agregare los siguientes pasos:

Crearemos una matriz (resultados), donde guardaremos los indices de las filas con los datos iguales, y los datos repetidos.

en la primera columna agregaremos el indice de la fila correspondiente ( el de la columna no lo agregare pues siempre trabajamos en una columna en especifico). de todas formas se simple hacerlo.

Esto lo realizo agregando un contador k, el cual varia solo si encuentra valores iguales.

Este paso es como hacer un bucle for, pero en forma manual (o por lo menos asi lo defino yo xd).



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clc
clear all
k=1;
A=[1,2,3;4,5,6;7,8,9;43,22,6] % matriz de ejemplo
 
B=[3,5,1;6,3,4;1,6,8;1,7,1]   % matriz de ejemplo
 
for i=1:size(B,1)
if A(1,1)==B(i,1)
    vector(k,1)=B(i,1);
    disp(['A(1,1) es igual al elemento B ', num2str(i),[',1']])
   k=k+1;
    disp('  ')
end
end
clear i
clear k



ejecución

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
A =
 
     1     2     3
     4     5     6
     7     8     9
    43    22     6
 
 
B =
 
     3     5     1
     6     3     4
     1     6     8
     1     7     1
 
A(1,1) es igual al elemento B 3,1
 
A(1,1) es igual al elemento B 4,1
 
  fila  valor
     3     1
     4     1
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

salida de datos despues de un bucle

Publicado por camilo (52 intervenciones) el 29/02/2012 18:38:34
me qeuivoque con el codigo. te adjunte uno anterior.

adjunto el ultimo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clc
clear all
k=1;
A=[1,2,3;4,5,6;7,8,9;43,22,6] % matriz de ejemplo
 
B=[3,5,1;6,3,4;1,6,8;1,7,1]   % matriz de ejemplo
 
for i=1:size(B,1)
if A(1,1)==B(i,1)
    resultados(k,1)=i;
    resultados(k,2)=B(i,1);
    disp(['A(1,1) es igual al elemento B ', num2str(i),[',1']])
   k=k+1;
    disp('  ')
end
end
 
disp(['  fila', '  valor'])
disp(resultados)
 
clear i k


ejecución

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
A =
 
     1     2     3
     4     5     6
     7     8     9
    43    22     6
 
 
B =
 
     3     5     1
     6     3     4
     1     6     8
     1     7     1
 
A(1,1) es igual al elemento B 3,1
 
A(1,1) es igual al elemento B 4,1
 
  fila  valor
     3     1
     4     1


ahi si. disculpa el 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

salida de datos despues de un bucle

Publicado por rosa (6 intervenciones) el 29/02/2012 19:45:18
Hola Camilo, muchas gracias por el interés mostrado...efectivamente, la pregunta está relacionada con la anterior..comparo los elementos de la primera columan de una matriz E con los elementos de la primera columna de otra matriz D, de forma que cuando sean iguales necesito que me muestre una propiedad de la segunda matriz..despues de la determinación de las matrices, el código para el bucle que he establecido es el siguiente..

for i=1:1:ar2

for j=1:1:or2

if E(i,1)==D(j,1)

O3=D(j,1)

end
end
end

el problema es que cuando se cumple la condición lo escribe en pantalla pero guarda en el archivo sólo el último valor, y lo que deseo es establecer una matriz de resultados o algo así... eso podría hacerlo agregando el indice k solamente??
muchas gracias por todo
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

salida de datos despues de un bucle

Publicado por rosa (6 intervenciones) el 29/02/2012 19:47:24
se me olvidaba especificar que ar2 y or2 son los tamaños de las matricees E y D respectivamente.
Un saludo y espero su respuesta, 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

salida de datos despues de un bucle

Publicado por camilo (52 intervenciones) el 29/02/2012 19:53:17
Estimada Rosa:

si te fijas, la variable O3 es de 1,1 y por esa razon es que te va a guardar siempre el ultimo valor que seleccione.

a la variable O3 ponele un contador como te comente en el mensaje anterior a este.

k=1;

for i=1:1:ar2

for j=1:1:or2

if E(i,1)==D(j,1)
O3(k,1)=D(j,1)
k=k+1

end
end
end

puse en negrilla lo que debes cambiar, pues O3, debe llevar un contador, para que se pueda mover por el mismo vector, o algo asi ( soy medio enrredado para explicarme).

cuentanos si te sirve esa solucion.

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

salida de datos despues de un bucle

Publicado por camilo (52 intervenciones) el 29/02/2012 19:57:44
con respecto a la dimension de la matriz que estas evaluando, utiliza la funcion size('matriz en cuestion').

por ejemplo:

sea una matriz A de 20x30 (20filas y 30 columnas).

si colocas size(A,1) el resultado sera el numero de filas (20)

si colocas size(A,2) el resultado sera el numero de columnas (30).

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

salida de datos despues de un bucle

Publicado por rosa (6 intervenciones) el 29/02/2012 21:03:03
Estimado Camilo, muchas gracias por todo...tenías razón, el problema era el índice de la variable que guardaba los datos..así parece que va, cuando lo pruebe con las matrices grandes lo afirmaré totalmente. A lo referido a la dimensión de las matrices, esa es la función de utilizo, muchas gracias.
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