【发布时间】:2013-05-07 20:00:03
【问题描述】:
我正在寻找一种快速的方法来将包含小写字母、空格和句点的大型字符数组转换为一组整数,反之亦然。
通常我会使用 double 和 char 函数,但我想使用一组特殊的整数来表示每个字母(这样 'a' 匹配 '1','b' 匹配 '2'.. .. 'z' 匹配 26,' ' 匹配 27, '.' 匹配 28)
我目前的方法是:
text = 'quick brown fox jumps over dirty dog';
alphabet ='abcdefghijklmnopqrstuvwxyz .';
converted_text = double(text);
converted_alphabet = double(alphabet);
numbers = nan(28,1)
for i = 1:28
numbers(converted_text(i)==converted_alphabet(i)) = i;
end
newtext = nan(size(numbers))
for i = 1:size(numbers,1)
newtext(numbers==i) = alphabet(i)
end
不幸的是,对于大型数组,这需要相当多的时间,我想知道在 MATLAB 中是否有更快的方法来做到这一点?
【问题讨论】:
-
你的意思是对于给定的字符串,你想用数字 1 替换 'a',一直到用 26 替换 'z'?你的字母表之外的字符呢?