unique set from file

4 visualizaciones (últimos 30 días)
Sanjana Sankar
Sanjana Sankar el 29 de Jul. de 2019
Comentada: Sanjana Sankar el 29 de Jul. de 2019
I have a .mat file with 14994x31 cells with random alphabets in the cells. I need to find the unique set. I know it is going to be the set of all alphabets only. But I want to find exactly which alphabets are present (if not all). Is the anyway to find out the unique set for the entire file and not just row by row?
  2 comentarios
Adam Danz
Adam Danz el 29 de Jul. de 2019
Could you give us an example of the cell array?
Sanjana Sankar
Sanjana Sankar el 29 de Jul. de 2019
'!' 'a:' 'l' 't' '@' [] []
'?' 'a:' 'l' 't' '@' 's' 't'
'/' 'a' 'b' 'a' 'n' 'd' 'A~'
3 different rows

Iniciar sesión para comentar.

Respuesta aceptada

Adam Danz
Adam Danz el 29 de Jul. de 2019
Editada: Adam Danz el 29 de Jul. de 2019
c = {'!' 'a:' 'l' 't' '@' [] []
'?' 'a:' 'l' 't' '@' 's' 't'
'/' 'a' 'b' 'a' 'n' 'd' 'A~'};
cUnq = unique(c(cellfun(@ischar,c)));
Result
cUnq =
13×1 cell array
{'!' }
{'/' }
{'?' }
{'@' }
{'A~'}
{'a' }
{'a:'}
{'b' }
{'d' }
{'l' }
{'n' }
{'s' }
{'t' }
If you want to keep the unique elements in their original order,
cUnq = unique(c(cellfun(@ischar,c)),'stable');

Más respuestas (1)

Joel Handy
Joel Handy el 29 de Jul. de 2019
Editada: Joel Handy el 29 de Jul. de 2019
c = {'!' 'a:' 'l' 't' '@' [] []
'?' 'a:' 'l' 't' '@' 's' 't'
'/' 'a' 'b' 'a' 'n' 'd' 'A~'};
for rowIdx = 1:size(c,1)
cString(rowIdx) = string([c{rowIdx,:}])
end
uniqueSets = unique(cString)
  1 comentario
Sanjana Sankar
Sanjana Sankar el 29 de Jul. de 2019
Thank you. This also works!!

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices 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