Convert an array of letters into numbers
Afficher commentaires plus anciens
I would like to convert an array of letters into numbers. Based on this code:
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
numbers = [3,6,12,1,1,3]
letters = Alphabet(numbers)
I would like to make the reverse of this. I mean I want to find eg 'HELLO' to which numbers correspont based on the above code.
Réponses (2)
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
[~, HelloNumbers] = ismember('HELLO', Alphabet)
Map(Alphabet) = 1:length(Alphabet);
Map('HELLO')
5 commentaires
Ivan Mich
le 30 Jan 2021
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÀÈÌÒÙÁÉÍÓÚÄËÏÖŸ';
Map(Alphabet) = 1:length(Alphabet);
Map('HÈLLÖ')
Ivan Mich
le 31 Jan 2021
Stephen23
le 31 Jan 2021
"Is there a way to set A equal to Á and À? I mean in order to not take into account accents?"
Yes, two approaches were given to you in answers to your earlier question (which you then deleted):
Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÀÈÌÒÙÁÉÍÓÚÄËÏÖŸ';
Map(Alphabet(1:26)) = 1:26;
Map(Alphabet(27:end)) = Map('AEIOUAEIOUAEIOY');
Map('HÈLLÖ')
One way would be Map object:
alph = 'A':'Z';
num = 1:numel(alph); % or whatever
M = containers.Map(string(alph'), num);
term = 'HELLO';
arrayfun(@(x) M(x), string(term')).'
ans =
8 5 12 12 15
Catégories
En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!