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

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