Matlab - hallar la moda de un vector a pedal

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

hallar la moda de un vector a pedal

Publicado por mariana (12 intervenciones) el 15/08/2017 02:06:46
hola necesito hallar la moda de un vector a pedal o pues sin usar la función de moda y pues obviamente si el vector no tiene moda debe decir no hay moda

por ahora tengo esto que les parece?

1
2
3
4
5
6
7
8
9
10
11
12
entrada=[1 2 3 4]
kk=[];
 entrada=sort(entrada);
 for i=1:length(entrada)
 a=entrada(i);
 j=find(entrada==a);
 k=length(j);
 kk=[kk,k];
 end
y=max(kk);
t=find(kk==y);
moda=(entrada(t(1)));
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 JESUS DAVID ARIZA ROYETH
Val: 3.640
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

hallar la moda de un vector a pedal

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 15/08/2017 02:18:51
mariana antes del for crea una nueva variable por ejemplo :

1
entrada2=unique(entrada)

aquí vas a obtener los valores que hay sin sin repetición por ejemplo si en entrada tienes 1 2 3 4 4 4 7 7

con unique obtienes 1 2 3 4 7 nada más , aunque por el momento vas bien , pero si necesitas decir que no hay moda cuando existen varias modas entonces debes guardar en un vector cuántas veces se repite cada número de entrada2
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
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.640
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

hallar la moda de un vector a pedal

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 15/08/2017 03:32:25
igual aquí te dejo un código de ejemplo que puedes editar de acuerdo a tus necesidades:


1
2
3
4
5
6
7
8
9
10
11
12
entrada=[1 2 3 4 4 5 5 5];
entrada2=unique(entrada);
repite=zeros(1,numel(entrada2));
for i=1:length(entrada2)
repite(i)=sum(entrada==entrada2(i));
end
[s,p]=max(repite);
if sum(repite==s)>1
    disp('no hay moda')
else
    disp(entrada2(p))
end

saludos
https://www.facebook.com/royethmatlab/
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