You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
Matlab
50 lines
1.5 KiB
Matlab
function c=encode_letter(letter)
|
|
%convert letters to intergers between 1 and 26
|
|
if ischar(letter)
|
|
letter=double(letter)-96;
|
|
end
|
|
|
|
c=logical(zeros(1,14));
|
|
switch letter
|
|
case 1, c([1,2,3,5,6,9,13])=1; %A
|
|
case 2, c([1:4,7,9,11])=1; %B
|
|
case 3, c([1,4,5,6])=1; %C
|
|
case 4, c([1:4,7,11])=1; %D
|
|
case 5, c([1,4,5,6,13])=1; %E
|
|
case 6, c([1,5,6,13])=1; %F
|
|
case 7, c([1,3:6,9])=1; %G
|
|
case 8, c([2,3,5,6,9,13])=1; %H
|
|
case 9, c([1,4,7,11])=1; %I
|
|
case 10, c([2:5])=1; %J
|
|
case 11, c([5,6,13,8,10])=1; %K
|
|
case 12, c([4:6])=1; %L
|
|
case 13, c([2,3,5,6,8,14])=1; %M
|
|
case 14, c([2,3,5,6,10,14])=1; %N
|
|
case 15, c([1:6])=1; %O
|
|
case 16, c([1,2,5,6,9,13])=1; %P
|
|
case 17, c([1:6,10])=1; %Q
|
|
case 18, c([1,2,5,6,13,9,10])=1; %R
|
|
case 19, c([1,3,4,6,9,13])=1; %S
|
|
case 20, c([1,7,11])=1; %T
|
|
case 21, c([2:6])=1; %U
|
|
case 22, c([5,6,12,8])=1; %V
|
|
case 23, c([2,3,5,6,10,12])=1; %W
|
|
case 24, c([8:2:14])=1; %X
|
|
case 25, c([8,11,14])=1; %Y
|
|
case 26, c([1,4,8,12])=1; %Z
|
|
case -48, c([1:6])=1; %0 (same as letter o)
|
|
case -47, c([7,11])=1; %1
|
|
case -46, c([1,2,9,13,5,4])=1; %2
|
|
case -45, c([1:4,9])=1; %3
|
|
case -44, c([6,13,9,7,11])=1; %4
|
|
case -43, c([1,3,4,6,9,13])=1; %5 (same as letter s)
|
|
case -42, c([1,3:6,13,9])=1; %6
|
|
case -41, c([1,8,12])=1; %7
|
|
case -40, c([1:6,9,13])=1; %8
|
|
case -39, c([1:4,6,9,13])=1; %9
|
|
case -53, c([7:2:14])=1; %+ (used as mask / filler for missing letter)
|
|
case -54, c([1:6,8:2:14])=1; %* (used as mask / filler for missing letter)
|
|
otherwise
|
|
error('undefined letter')
|
|
end
|