Frecuencia de resultados en matrices
Publicado por Gustavo (16 intervenciones) el 20/01/2023 00:37:13
Buenas tardes, solicito su amable ayuda para resolver un problema:
Tengo dos matrices, MA y MB, MA es de 100 X 3 y MB es de 5 X 3, los valores en cada renglón no se repiten (ver ejemplo)
Tengo que encontrar la distancia en que aparece cada uno los elementos de la MB en MA, uno por uno, es decir, el elemento MB(1,1) = 9 el resultado que se obtiene es: 1, 2, 6
El elemento MB(1,2) =15, el resultado es : 9, 1, 2
Así con todos los elementos de MB, como los elementos no se repiten en los renglones, una vez encontrado uno ya no es necesario seguir en ese renglón, se puede saltar al siguiente
MA
4 9 14
5 6 11
9 12 26
1 14 19
3 5 12
16 20 25
1 3 4
13 17 23
15 31 32
9 11 15
8 14 19
15 23 27
MB
9 15 18
3 6 11
1 8 17
12 16 19
4 8 9
He tratado de hacerlo usando for y usando while, anexo el código con esta instrucción
[x1, y1] = size (MA)
[x2, y2] = size (MB)
ii = 1;
ji = 1;
cc = 1;
ki = 1;
while ii <= yi
while ji <= xi
if cxmutdb(1,1) == inicial(ii, ji)
frec(ki,:)= cc;
ki = ki +1;
cc = 1;
else
cc=cc+1;
endif
ji = ji+1;
end
ii = ii +1;
end
Tengo dos matrices, MA y MB, MA es de 100 X 3 y MB es de 5 X 3, los valores en cada renglón no se repiten (ver ejemplo)
Tengo que encontrar la distancia en que aparece cada uno los elementos de la MB en MA, uno por uno, es decir, el elemento MB(1,1) = 9 el resultado que se obtiene es: 1, 2, 6
El elemento MB(1,2) =15, el resultado es : 9, 1, 2
Así con todos los elementos de MB, como los elementos no se repiten en los renglones, una vez encontrado uno ya no es necesario seguir en ese renglón, se puede saltar al siguiente
MA
4 9 14
5 6 11
9 12 26
1 14 19
3 5 12
16 20 25
1 3 4
13 17 23
15 31 32
9 11 15
8 14 19
15 23 27
MB
9 15 18
3 6 11
1 8 17
12 16 19
4 8 9
He tratado de hacerlo usando for y usando while, anexo el código con esta instrucción
[x1, y1] = size (MA)
[x2, y2] = size (MB)
ii = 1;
ji = 1;
cc = 1;
ki = 1;
while ii <= yi
while ji <= xi
if cxmutdb(1,1) == inicial(ii, ji)
frec(ki,:)= cc;
ki = ki +1;
cc = 1;
else
cc=cc+1;
endif
ji = ji+1;
end
ii = ii +1;
end
Valora esta pregunta
0