Assign Numeric Values to List of Strings

3 visualizaciones (últimos 30 días)
Calum
Calum el 7 de Abr. de 2015
Comentada: per isakson el 7 de Abr. de 2015
Hi,
If I have a cell array vertically sorted alphabetically as follows:
X=['a';'a';'c';'h';'x';'x']
What code should I use to obtain the numeric output:
Y=[1;1;2;3;4;4]
Where each integer in Y represents the alphabetic rank of the corresponding string in X.
Many thanks,
Cal
  1 comentario
per isakson
per isakson el 7 de Abr. de 2015
Character array:
X=['a';'a';'c';'h';'x';'x'];
Cell array:
X={'a';'a';'c';'h';'x';'x'}

Iniciar sesión para comentar.

Respuestas (2)

Matt J
Matt J el 7 de Abr. de 2015
[~,~,Y]=unique(X);

Thorsten
Thorsten el 7 de Abr. de 2015
That's easy
Y = [ 1 1 + cumsum(diff(X - 'a' + 1) > 0)'];
(and one of the reasons why I love Matlab :-))

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by