unique set from file

1 Ansicht (letzte 30 Tage)
Sanjana Sankar
Sanjana Sankar am 29 Jul. 2019
Kommentiert: Sanjana Sankar am 29 Jul. 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 Kommentare
Adam Danz
Adam Danz am 29 Jul. 2019
Could you give us an example of the cell array?
Sanjana Sankar
Sanjana Sankar am 29 Jul. 2019
'!' 'a:' 'l' 't' '@' [] []
'?' 'a:' 'l' 't' '@' 's' 't'
'/' 'a' 'b' 'a' 'n' 'd' 'A~'
3 different rows

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Adam Danz
Adam Danz am 29 Jul. 2019
Bearbeitet: Adam Danz am 29 Jul. 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');

Weitere Antworten (1)

Joel Handy
Joel Handy am 29 Jul. 2019
Bearbeitet: Joel Handy am 29 Jul. 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 Kommentar
Sanjana Sankar
Sanjana Sankar am 29 Jul. 2019
Thank you. This also works!!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by