How to find first non repeated (unique) character in a string?

12 visualizaciones (últimos 30 días)
I have already tried to find a Matlab function for this but doesnt seem to be one apart from 'unique' which only eliminates duplicates. Any ideas for code on how to do this?
For example, an input of 'hello' would return h or an input of 'radar' would return d.
The unique characters in 'hello' are h,e and o with h being the first in line
The unique character in 'radar' is only d and so this would also be the first
Any help would be appreciated
  2 comentarios
madhan ravi
madhan ravi el 14 de Feb. de 2019
please illustrate with an example
Sam Accura
Sam Accura el 14 de Feb. de 2019
Example added to question - thank you

Iniciar sesión para comentar.

Respuesta aceptada

madhan ravi
madhan ravi el 14 de Feb. de 2019
u=unique(s,'stable'); % where s is your input
Z=arrayfun(@(x)nnz(s==u(x)),1:numel(u));
Result=u(find(Z==1,1,'first'))

Más respuestas (1)

Andrei Bobrov
Andrei Bobrov el 14 de Feb. de 2019
z = 'hello';
[a,~,c] = unique(z,'stable');
out = a(find(accumarray(c,1) == 1,1));

Community Treasure Hunt

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

Start Hunting!

Translated by