Matlab - buscar valores repetidos y localizar

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

buscar valores repetidos y localizar

Publicado por Oscar (13 intervenciones) el 14/08/2019 23:50:33
Buen dia.
Deseo buscar en una matriz cierta cantidad de valores repetidos y ademas ver su localización por filas y columnas, es decir
1
2
3
4
5
6
7
8
9
10
A=[92	99	1	8	15	67	74	51	58	40
98	80	7	14	16	73	55	57	64	41
4	81	88	20	22	1	56	63	70	47
85	87	19	21	1	1	1	69	71	28
86	93	25	1	1	1	1	1	52	34
17	24	76	83	1	1	1	26	33	65
23	5	82	89	91	1	30	32	39	66
79	6	13	95	97	29	31	38	45	72
10	12	94	96	78	35	37	44	46	53
11	18	100	77	84	36	43	50	27	59]

de esta matriz quisiera que me indicara mínimo tres valores consecutivos tanto en fila y columna formando un cuadrado, en este ejemplo tomo el valor 1 y quisiera que quedara algo como :
1
2
3
4
5
6
7
8
9
10
fila columna valor
4    5    1
4    6    1
4    7    1
5    5    1
5    6    1
5    7    1
6    5    1
6    6    1
6    7    1


agradecería su ayuda.
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

buscar valores repetidos y localizar

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 15/08/2019 01:26:45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
clear
A=[92	99	1	8	15	67	74	51	58	40
98	80	7	14	16	73	55	57	64	41
4	81	88	20	22	1	56	63	70	47
85	87	19	21	1	1	1	69	71	28
86	93	25	1	1	1	1	1	52	34
17	24	76	83	1	1	1	26	33	65
23	5	82	89	91	1	30	32	39	66
79	6	13	95	97	29	31	38	45	72
10	12	94	96	78	35	37	44	46	53
11	18	100	77	84	36	43	50	27	59];
 
f=size(A,1);
c=size(A,2);
for i=1:f-2
    for j=1:c-2
        if sum(sum(A(i:i+2,j:j+2)))/(9*A(i,j))==A(i,j)
            [i   j A(i,j); i   j+1 A(i,j); i   j+2  A(i,j)
             i+1 j A(i,j); i+1 j+1 A(i,j); i+1 j+2  A(i,j)
             i+2 j A(i,j); i+2 j+1 A(i,j); i+2 j+2  A(i,j)]
        end
    end
end

1
2
3
4
5
6
7
8
9
10
11
12
13
>> numeros_cuadrados
 
ans =
 
     4     5     1
     4     6     1
     4     7     1
     5     5     1
     5     6     1
     5     7     1
     6     5     1
     6     6     1
     6     7     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