Matlab - CONTADOR DE DATOS EN UNA MATRIZ

 
Vista:

CONTADOR DE DATOS EN UNA MATRIZ

Publicado por JESSICA (2 intervenciones) el 25/05/2016 22:28:03
Buenas tardes.

Me interesa conocer las cantidad de datos (1:255) que se repiten en una matriz, actualmente lo tengo con tres ciclos for (k, j, i), y vector auxiliar en inicio de ceros, que posteriormente va mostrando la cantidad de datos que se repiten ente 1 y 255; sin embargo necesito simplificarlo más. Podrían ayudarme?
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

CONTADOR DE DATOS EN UNA MATRIZ

Publicado por crs (13 intervenciones) el 27/05/2016 14:43:27
Hola,

Puedes utilizar la función find() para determinar en qué posiciones de tu matriz hay datos con un valor dado, y length() para obtener el número de repeticiones, evitando así recorrer toda la matriz. Por ejempo:

1
n = length(find(M==3));

devuelve el número de veces que se repite el valor 3 en la matriz M.
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

CONTADOR DE DATOS EN UNA MATRIZ

Publicado por Brandon (2 intervenciones) el 02/06/2016 18:59:15
Yo lo reduci a dos bucles: Un while para almacenar en la componente x(i) las veces que el numero "i" aparece en la matriz y un for para imprimir el vector x.
Codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
A=input('Ingrese la matriz A: ');
[n,m]=size(A);
i=1;
x=zeros(1,255);
while i<=255
x(i)=length(find(A==i));
i=i+1;
end
for j=1:255
    if length(find(A==j))~=0
    fprintf('x(%d)=%d\n',j,x(j));
    end
end

Ejecucion
1
2
3
4
5
6
7
8
9
10
11
12
13
Ingrese la matriz A: [1 10 12 4 5 6;4 11 24 54 2 2;11 13 12 4 27 1]
x(1)=2
x(2)=2
x(4)=3
x(5)=1
x(6)=1
x(10)=1
x(11)=2
x(12)=2
x(13)=1
x(24)=1
x(27)=1
x(54)=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