2011-09-30 115 views
-2

函數arithenco需要輸入消息是一個正整數序列。因此,我需要通過使用以下映射將消息轉換爲數字序列message_int。在MATLAB中將字母映射爲整數

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

+1

這一切在MATLAB正在做? (爲什麼C++和html標籤?) – Tom

+1

這聽起來有點像家庭作業。 – darvids0n

+4

@Årjuné - 下一次你需要幫助完成作業,你需要發佈你試圖解決問題的方式。請付出一些努力,因爲那些會回答你問題的人肯定會。 –

回答

1

哦,剛剛重讀你的問題:你的映射不是那麼簡單。抱歉。

(因爲darvidsOn寫的相同我不會刪除這個答案 - 它可能會給你一個開始 - 但它不會完全回答你的問題)。

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

您可以使用d = double('A')轉換一個chardouble - 那麼你將需要減去64以獲得您想要的映射(因爲A是ASCII碼65)。

+0

+1雖然我沒有看你的答案,但我基本上寫了你在隨後編輯我的答案時寫的內容,所以我給你信用:) – darvids0n

-1

This answer應該是你需要的(使用double的相反方法)。

編輯:請注意,這裏的問題是關於小寫字符,如果你想你大寫需要減去64而不是(「A」的ASCII碼爲65,「A」是97)。

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;