Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

Matlab - Comparación de dos vectores

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:

Comparación de dos vectores

Autor:David (29 intervenciones)
Fecha:13/07/2012 12:11:53
Necesito a la hora de hacer permutaciones aleatorias comprobar si se repite la misma permutación.
Estaba pensando hacerlo:
>> x(1).permutacion=randperm(5); >> x(1).permutacion ans = 1 2 5 4 3 >> x(2).permutacion=randperm(6); >> x(2).permutacion ans = 2 4 3 5 6 1 >> y(1).permutacion=randperm(5); >> y(1).permutacion ans = 1 2 3 4 5 >> y(2).permutacion=randperm(6); >> y(2).permutacion ans = 5 4 1 6 3 2
Para ver si la permutación aleatoria es la misma, si utilzo:
>> y(2).permutacion==x(2).permutacion ans = 0 1 0 0 0 0 >> y(1).permutacion==x(1).permutacion ans = 1 1 0 1 0

Pero yo únicamente necesito saber si es exactamente la misma o cambia en algo, es decir, necesito como salida 0 si es distinta y 1 si es exactamente la misma.

¿Cómo podría hacerlo?

Muchas gracias.
Responder
información
Otras secciones de LWP con contenido similar...
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Comparación de dos vectores

Autor:David (29 intervenciones)
Fecha:17/07/2012 13:51:17
Al no poder realizar la comparación directamente, al final se me ha ocurrido hacer la comparación detectando si son iguales o distintos de la forma (si b=1 iguales y si b=0 distintos):

for (i=1:6) if(y(2).permutacion(i)==x(2).permutacion(i)) a(i)=1; else a(i)=0; end; end; b=1; for (i=1:6) b=b&a(i); end;


Al final si b=1 son iguales y si b=0 son distintos en alguno de sus términos.

¿Se puede hacer más elegantemente que este código?
Comentar
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:

Comparación de dos vectores

Autor:David (29 intervenciones)
Fecha:17/07/2012 16:53:53
Se puede hacer con la función isequal
>> x(2).permutacion=randperm(6); x(2).permutacion

ans =

5 4 3 2 6 1

>> y(2).permutacion=randperm(6); y(2).permutacion

ans =

6 1 2 4 5 3

>> isequal(x(2).permutacion,y(2).permutacion)

ans =

0

>> y(2).permutacion=[5 4 3 2 6 1]

y =

1x2 struct array with fields:
permutacion

>> y(2).permutacion

ans =

5 4 3 2 6 1

>> isequal(x(2).permutacion,y(2).permutacion)

ans =

1
Comentar