说明:按表一,把英文大写字母(AB..XYZ)置换成数字(0~25)
表1明文字母的表值ABCDEFGHIJKLM
12345678910111213
NOPQRSTUVWXYZ
1415161718192021222324250
function Y=letter_num(X)
%参数说明,输入项:X由每个字母组成的字符串
%输出项:Y由每个数字组成的行向量
%例如A B C D对应的数字是1 2 3 4
%其调用格式为:Y=letter_num('ABCD').
n=length(X);
if rem(X,2)~=0
X(n+1)=X(n);
n=n+1;
end
Y=zeros(1,n);
for i=1:n
if X(i)=='A'
Y(i)=1;
elseif X(i)=='B'
Y(i)=2;
elseif X(i)=='C'
Y(i)=3;
elseif X(i)=='D'
Y(i)=4;
elseif X(i)=='E'
Y(i)=5;
elseif X(i)=='F'
Y(i)=6;
elseif X(i)=='G'
Y(i)=7;
elseif X(i)=='H'
Y(i)=8;
elseif X(i)=='I'
Y(i)=9;
elseif X(i)=='J'
Y(i)=10;
elseif X(i)=='K'
Y(i)=11;
elseif X(i)=='L'
Y(i)=12;
elseif X(i)=='M'
Y(i)=13;
elseif X(i)=='N'
Y(i)=14;
elseif X(i)=='O'
Y(i)=15;
elseif X(i)=='P'
Y(i)=16;
elseif X(i)=='Q'
Y(i)=17;
elseif X(i)=='R'
Y(i)=18;
elseif X(i)=='S'
Y(i)=19;
elseif X(i)=='T'
Y(i)=20;
elseif X(i)=='U'
Y(i)=21;
elseif X(i)=='V'
Y(i)=22;
elseif X(i)=='W'
Y(i)=23;
elseif X(i)=='X'
Y(i)=24;
elseif X(i)=='Y'
Y(i)=25;
elseif X(i)=='Z'
Y(i)=0;
else error('请正确输入A到Z的字母')
end
end
end
%%%%%%% 另外一种更简单的编程(信息管理专业2014级金鑫)%%%%%%%%%%%
function Y=letter_num2(X)
% BY 金鑫 2014信管
n=length(X); %字符串长度n
Y=zeros(1,n); %初始化矩阵Y,提高运算效率
for i=1:n
Y(i)=double(X(i))-64; %对应ASSIC码表减去64,可得对应数字
if Y(i)==26 %处理特例Z=0的情况
Y(i)=0;
end
end
end