основного раствора для нахождения уников
unique(cellfun(@(x)(mat2str(x)),a,'uniformoutput',false))
Это можно найти here фактически.
Осложняющих факторы
Технически пустая ячейка в конце также уникален, возможно, вы хотите, чтобы удалить его отдельно, как так:
a(cellfun(@isempty,a)) = []
В настоящее время вы получите строки в качестве вывода, это может решаются так:
[~, idx] = unique(cellfun(@(x)(mat2str(x)),a,'uniformoutput',false))
a(idx)
Я лично считаю, что это сложнее это должно быть.
Резюме
Вы можете получить желаемый результат, как так
a(cellfun(@isempty,a)) = []
[~, idx] = unique(cellfun(@(x)(mat2str(x)),a,'uniformoutput',false))
a(idx)