How to find unique values in a matrix without looping over rows

1 visualización (últimos 30 días)
France Poirier
France Poirier el 27 de En. de 2021
Respondida: Stephen23 el 27 de En. de 2021
Hi,
I have an m by n matrix A that has repeat non-zero values in every row. The number of non-zero elements varies across rows. I would like to keep only unique values, but can't seem to figure out how to do that without looping. Matrix size is big, so I tried looping and it's not an option...
I tried using unique function, but can't get it to do what I need. I would appreciate any advice.
Thank you,

Respuestas (2)

Cris LaPierre
Cris LaPierre el 27 de En. de 2021
out = unique(A(:))

Stephen23
Stephen23 el 27 de En. de 2021
M = randi([0,9],3,13)
M = 3×13
3 6 6 9 8 5 7 8 6 7 1 4 5 1 4 5 3 6 5 4 9 4 3 7 5 6 2 1 6 0 7 5 8 4 3 8 4 0 0
W = sort(M,2);
W(diff(W,1,2)==0) = 0;
W = sort(W,2) % optional
W = 3×13
0 0 0 0 0 1 3 4 5 6 7 8 9 0 0 0 0 0 0 1 3 4 5 6 7 9 0 0 0 0 0 1 2 3 4 5 6 7 8

Categorías

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

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by