|
MATLAB编程:大写英文字母转换成数值(0-25)两种代码浏览数:125次
说明:按表一,把英文大写字母(AB..XYZ)置换成数字(0~25) 表1 明文字母的表值
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
|