Отображение букв в целые числа в MATLAB - PullRequest
0 голосов
/ 30 сентября 2011

Функция arithenco требует, чтобы входное сообщение было последовательностью натуральных чисел. Следовательно, мне нужно преобразовать сообщение в последовательность чисел message_int, используя следующее отображение.

‘A’ → 1, ‘C’ → 2, ‘G’ → 3, ‘T’ → 4.

Ответы [ 3 ]

4 голосов
/ 01 октября 2011

Насколько я понимаю, алфавит, который вы используете, содержит только четыре значения A, C, G, T (последовательности ДНК, я полагаю).

Достаточно простого сравнения:

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 голос
/ 30 сентября 2011

О, просто перечитайте свой вопрос: ваше отображение не так просто.Извините.

(так как darvidsOn написал то же самое, я не буду удалять этот ответ - он может дать вам старт - но он не отвечает на ваш вопрос полностью).

Естьвзгляд на http://www.matrixlab -examples.com / ascii-chart.html

Вы можете использовать d = double('A') для преобразования char в double - тогда вам понадобитсявычтите 64, чтобы получить необходимое отображение (потому что A - это код 65 ascii).

0 голосов
/ 30 сентября 2011

Этот ответ должен быть тем, что вам нужно (обратный метод с использованием double).

РЕДАКТИРОВАТЬ: Обратите внимание, что здесь вопрос о строчных букв, если вы хотите, чтобы верхний регистр вычесть 64 вместо этого («A» в ASCII - 65, «a» - 97).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...