在MATLAB中将字母映射到整数

时间:2011-09-30 05:55:27

标签: matlab

函数arithenco需要输入消息为正整数序列。因此,我需要使用以下映射将消息转换为数字序列message_int。

'A'→1,'C'→2,'G'→3,'T'→4。

3 个答案:

答案 0 :(得分:4)

根据我的理解,您使用的字母表只包含四个值A,C,G,T(我猜想是DNA序列)。

简单的比较就足够了:

seq = 'TGGAGGCCCACAACCATTCCCTCAGCCCAATTGACCGAAAGGGCGCGA';
msg_int = zeros(size(seq));
msg_int(seq=='A') = 1;
msg_int(seq=='C') = 2;
msg_int(seq=='G') = 3;
msg_int(seq=='T') = 4;

答案 1 :(得分:1)

哦,重新阅读你的问题:你的映射并不那么简单。遗憾。

(因为darvidsOn写的相同我不会删除这个答案 - 它可能会给你一个开始 - 但它不会完全回答你的问题。)

查看http://www.matrixlab-examples.com/ascii-chart.html

您可以使用d = double('A')char转换为double - 然后您需要减去64以获得所需的映射(因为{{1}是ascii代码65)。

答案 2 :(得分:-1)

This answer应该是您所需要的(使用double的反向方法)。

编辑:请注意,这里的问题是关于小写字符,如果你想要大写,你需要减去64(ASCII中的'A'是65,'a'是97 )。