How to encode alphabets using tables

3 views (last 30 days)
Hi I want to encode the word "CONGRATULATIONS" using upper case letters.For this I have the table
A 0
B 1
C 2
D 3 ......and so on.
I dont know how to relate this type of mapping in matlab.
Alphabets={'A';'B';'C';'D';'E';'F';'G';'H';'I';'J';'K';'L';'M';'N';'O';'P';'Q';'R';'S';'T';'U';'V';'W';'X';'Y';'Z';'null space'};
numeric_values=[0;1;2 ;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26];
T1=table(Alphabets,numeric_values);
M={'C';'O';'N';'G';'U';'R';'A';'T';'U';'L';'A';'T';'I';'O';'N';'S'};
T2=table(M);

Accepted Answer

R.G.
R.G. on 1 Sep 2019
Edited: R.G. on 1 Sep 2019
Hello! Check following code. I used char(65:90) to create A-Z sequence, and Map container to map symbols into codes.
symbols = [num2cell(char(65:90)) 'space'];
codes = 0:26;
dictionary = containers.Map(symbols, codes);
word = num2cell('CONGRATULATIONS');
encoded_word = cell(size(word));
for i = 1:length(word)
encoded_word{i} = dictionary(word{i});
end
display(cell2mat(encoded_word));
  8 Comments
sadiqa ilyas
sadiqa ilyas on 3 Sep 2019
Thanks. Its really a smart way for mapping.
Stephen23
Stephen23 on 14 Sep 2023
symbols = [num2cell(char(65:90)) 'space'];
codes = 0:26;
dictionary = containers.Map(symbols, codes);
word = num2cell('CONGRATULATIONS');
encoded_word = cell(size(word));
for i = 1:length(word)
encoded_word{i} = dictionary(word{i});
end
display(cell2mat(encoded_word))
2 14 13 6 17 0 19 20 11 0 19 8 14 13 18
A = 'A':'Z';
V = 0:25;
T = array2table(V(:),'rownames',num2cell(A(:)));
M = num2cell('CONGURATULATIONS');
T{M,:}
ans = 16×1
2 14 13 6 20 17 0 19 20 11
The MATLAB approach:
'CONGRATULATIONS' - 'A'
ans = 1×15
2 14 13 6 17 0 19 20 11 0 19 8 14 13 18

Sign in to comment.

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!