Borrar filtros
Borrar filtros

Test different number(values or label) in matrix?

4 visualizaciones (últimos 30 días)
REN
REN el 3 de Mzo. de 2011
hello, I want to detect different number in matrix?
for exmaple in a matrix:
0 0 0 0 0 0 0;
3 3 0 0 0 0 0;
3 3 3 0 0 0 0;
0 0 0 0 4 4 4;
0 0 5 5 0 0 0;
5 5 5 5 5 0 0;
How can I know the number of different values in this matrix, and index for any elements with same value?
Can I use function 'diff'?

Respuesta aceptada

Paulo Silva
Paulo Silva el 3 de Mzo. de 2011
number of different values, A is your matrix
numel(unique(A))
All code:
a=[0 0 0 0 0 0 0
3 3 0 0 0 0 0
3 3 3 0 0 0 0
0 0 0 0 4 4 4
0 0 5 5 0 0 0
5 5 5 5 5 0 0];
b=unique(a)
for i=2:numel(b)
c=find(a==b(i))';
fprintf('The value %d appears %d times, indices %s\n',b(i),numel(c),num2str(c))
end

Más respuestas (1)

Matt Fig
Matt Fig el 3 de Mzo. de 2011
A = [0 0 0 0 0 0 0;
3 3 0 0 0 0 0;
3 3 3 0 0 0 0;
0 0 0 0 4 4 4;
0 0 5 5 0 0 0;
5 5 5 5 5 0 0]
U = unique(A); % Has the unique elements of A.
LU = length(U); % Has the number of unique elements of A.
[L,I] = histc(A(:).',U) % Has the counts per element and locations.
  1 comentario
REN
REN el 3 de Mzo. de 2011
just realize can not accepted two answers at same time?
Thanks Matt Fig!

Iniciar sesión para comentar.

Categorías

Más información sobre Elementary Math en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by