Matlab - HALLAR LA MODA DE UNA MATRIZ

 
Vista:
Imágen de perfil de Javier lópez

HALLAR LA MODA DE UNA MATRIZ

Publicado por Javier lópez (16 intervenciones) el 26/01/2017 18:47:11
Hola a todos:
Mi duda no es con el algoritmo en si sino con la notación en MatLab. Sé que estoy fallando en algo pero no se en qué y no entiendo muy bien los warning que me aparecen.
El programa es el siguiente:

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
function [m] = mi_modaMatriz(A)
n=4;
m=4;
F=[0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0];
for i=1:n
    for j=1:m
        for x=1:n
            for y=1:m
                if (A(i)(j)==A(x)(y))
                    F(i)(j)=F(i)(j)+1;
 
                end
            end
        end
    end
end
 
maximo=F(1)(1);
posmaxfilas=1;
posmaxcolum=1;
for i=1:n
    for j=1:m
        if (F(i)(j)>maximo)
            posmaxfilas=i;
            posmaxcolum=j;
        end
    end
end
m=A(posmaxfilas)(posmaxcolum);

uno de los warning que me aparecen cuando llamo a la función es el siguiente:

>> m = mi_modaMatriz(A)
Error: File: mi_modaMatriz.m Line: 9 Column: 21
()-indexing must appear last in an index expression.

Gracias de antemano
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

HALLAR LA MODA DE UNA MATRIZ

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/01/2017 19:00:29
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
function [m] = mi_modaMatriz(A)
n=4;
m=4;
F=[0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0];
for i=1:n
for j=1:m
for x=1:n
for y=1:m
if A(i,j)==A(x,y)
F(i,j)=F(i,j)+1;
 
end
end
end
end
end
 
maximo=F(1,1);
posmaxfilas=1;
posmaxcolum=1;
for i=1:n
for j=1:m
if (F(i,j)>maximo)
posmaxfilas=i;
posmaxcolum=j;
end
end
end
m=A(posmaxfilas,posmaxcolum);




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>> A=rand(5)
A =
 
   0.068806099118051   0.819981222781941   0.105629203329022   0.266471490779072   0.457424365687674
   0.319599735180496   0.718358943205884   0.610958658746201   0.153656717591307   0.875371598604185
   0.530864280694127   0.968649330231094   0.778802241824093   0.281005302533871   0.518052108361104
   0.654445707757066   0.531333906565674   0.423452918962738   0.440085139001721   0.943622624548388
   0.407619197041153   0.325145681820560   0.090823285787439   0.527142741760652   0.637709098072174
 
>> m = mi_modaMatriz(A)
 
m =
 
   0.068806099118051

te filtre el sintaxis del código, pero la parte de la lógica del código no está filtrado

Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.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
0
Comentar
sin imagen de perfil

HALLAR LA MODA DE UNA MATRIZ

Publicado por Andrea (6 intervenciones) el 26/01/2017 19:04:55
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
function [m] = mi_modaMatriz(A)
n=size(A,1);
m=size(A,2);
F=[0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0];
for i=1:n
for j=1:m
for x=1:n
for y=1:m
if (A(i,j)==A(x,y))
F(i,j)=F(i,j)+1;
 
end
end
end
end
end
maximo=F(1,1);
posmaxfilas=1;
posmaxcolum=1;
for i=1:n
for j=1:m
if (F(i,j)>maximo)
posmaxfilas=i;
posmaxcolum=j;
end
end
end
m=A(posmaxfilas,posmaxcolum);
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
Imágen de perfil de Javier López

HALLAR LA MODA DE UNA MATRIZ

Publicado por Javier López (16 intervenciones) el 26/01/2017 20:00:42
Muchisimas gracias José por tu pronta y correcta respuesta.
Tu solución funciona de maravilla.
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