how to find out how many times a number apears in a 2D matrix ? which function to use?

2 visualizaciones (últimos 30 días)
Hey,
how can I find how many time a numbers appears in an 2D matrix for example:
If I have a matrix
x=[1,3,4;2,2,1;2,2,1]
number 2 appears 4 times
numger 1 appears 2 times
number 3 appears 1 time
Desired output:
22 1 3
22 1
  1 comentario
Image Analyst
Image Analyst el 7 de En. de 2019
Editada: Image Analyst el 7 de En. de 2019
You can't have an array with ragged right edge. Arrays must be rectangular. What do you want in the space below the 3? Or else you could have a 1-by-3 cell array, ca where
ca{1} = [2, 2; 2, 2];
ca{2} = [1;1];
ca{3} = 3;
Is that what you want?
Anyway, 1 appears 3 times, not 2 times, and what about 4? Why is 4 not in your desired output?

Iniciar sesión para comentar.

Respuesta aceptada

madhan ravi
madhan ravi el 5 de En. de 2019
n=2; % number to be tested
nnz(ismember(x,n))
  2 comentarios
aya qassim
aya qassim el 6 de En. de 2019
Editada: madhan ravi el 7 de En. de 2019
thank you,
But if I only have the matrix as an input (I don't have an input fot the number ) , how can I find out how many time a number apprears?
madhan ravi
madhan ravi el 7 de En. de 2019
Editada: madhan ravi el 7 de En. de 2019
Try the below , a in result represent unique numbers and the corresponding histc() shows how many times they occur in the matrix:
a = unique(x);
result = [a histc(x(:),a)]

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 6 de En. de 2019
[ux, ia, ic] = unique(x);
output = [ux, accumarray(ic, 1)]

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by