Matlab - Datos cruzados de matrices diferentes

 
Vista:
sin imagen de perfil
Val: 54
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Datos cruzados de matrices diferentes

Publicado por Fabián (19 intervenciones) el 27/03/2018 21:11:50
Hola,
tengo el siguiente problema:
matriz etiquetas
matriz etiquetas=
A
B
C
D
E

matriz valores
matriz valores=
2 3 5 7 9
1 2 9 8 5
6 7 8 4 3
2 3 4 1 6
9 5 6 8 2

Debo cruzar la matriz 'etiquetas' y la matriz 'valores' de la siguiente manera:

las etiquetas de la matriz 'etiquetas' corresponden a los valores que tengo en la matriz 'valores', así:
A 2 3 5 7 9
B 1 2 9 8 5
C 6 7 8 4 3
D 2 3 4 1 6
E 9 5 6 8 2

Necesito buscar en la matriz 'etiqetas' letras específicas; por ejemplo la C y E y llevar a una nueva matriz "XX" los valores que acompañan esas etiquetas ordenadas en función de los criterios de la búsqueda; por ejemplo

realice la búsqueda de E primero y luego de C; entonces la matriz XX debe quedar ordenada así:

XX=
9 5 6 8 2
6 7 8 4 3

y en otra matriz diferente los valores del resto de etiquetas que para nuestro ejemplo son A, B y D , así :
YY=
2 3 5 7 9
1 2 9 8 5
2 3 4 1 6

Agradezco su amable ayuda.

Gracias
Fabiá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
Imágen de perfil de David Correa
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Datos cruzados de matrices diferentes

Publicado por David Correa (1094 intervenciones) el 31/03/2018 06:52:02
Hola Fabián;

En mi caso lo haría de la siguiente manera, usaría una etiqueta uxiliar basado en numeros (de 1 a 5).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
etiquetas = [1 2 3 4 5]
 
valores = [2 3 5 7 9;1 2 9 8 5;6 7 8 4 3;2 3 4 1 6; 9 5 6 8 2]
 
sel = [5 3];
res = setdiff(etiquetas,sel)
 
Msel = valores(sel,:)
 
Mres = valores(res,:)
 
los resultados serían:
 
sel =  5 3
 
res =  1     2     4
 
 
Msel =
 
     9     5     6     8     2
     6     7     8     4     3
 
 
Mres =
 
     2     3     5     7     9
     1     2     9     8     5
     2     3     4     1     6

Espero que sea de alguna ayuda.

Saludos

David Correa Ch.
[email protected]
[email protected]
Servicios de Programación Matlab
http://fismatlab.org​​
http://fismatlab.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
1
Comentar
sin imagen de perfil
Val: 54
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Datos cruzados de matrices diferentes

Publicado por Fabián (19 intervenciones) el 31/03/2018 15:40:20
Hola David; muchas gracias; funciona muy bien.

buen día

Fabián
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