Matlab - Frecuencia de numeros en vector

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

Frecuencia de numeros en vector

Publicado por Pablo (24 intervenciones) el 15/09/2018 20:02:48
Alguien podría ayudarme a escribir un código en Matlab, sin utilizar funciones como unique, find, etc. Para que haga lo siguiente.

Tengo un vector A=[7,1,9,7,2,9] y quiero que cuente la cantidad de veces que está un numero en el vector, es decir obtener un vector que me diga que el 7 está en A dos veces, el 1 una sola vez, el 9 dos veces, etc. nA=[2,1,2,1] .

Agradezco 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
sin imagen de perfil
Val: 38
Ha aumentado su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Frecuencia de numeros en vector

Publicado por Pablo (24 intervenciones) el 15/09/2018 23:16:28
Gracias por tu ayuda, pero el problema esta en que no puedo usar funciones predeterminadas en Matlab, por eso me surge este tipo de dudas, porque resultan más dificil. Yo he intentado, pero no he podido.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function [frecV] = frecuencia_vector(vector)
% Variables
    frec = 0; cont = 1;
    nDatos = length(vector);
    frecV = [];
for i=1:nDatos
    if vector==vector(i)
    frec=frec+1;
 
    if (frec~=1)
        frecV(cont) = vector(i);
        cont=cont+1;
    end
    end
end
disp(frecV)
end

El problema es que con este codigo me arroja un vector solo con los numeros que se repiten en él, pero no me dice cuantos de esos numeros hay en el vector. Ojalá puedas ayudarme.
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.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Frecuencia de numeros en vector

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 16/09/2018 03:29:18
1
2
3
4
5
6
7
8
9
10
A=[7 1 9 7 2 9];
frecV=[];
for k=1:length(A)
    frecV(k)=1;
    for j=1:length(A)
        if j~=k && A(k)==A(j)
            frecV(k)=frecV(k)+1;
        end
    end
end
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