2012-03-14 58 views
0

我正在重塑功能的輸出作爲遵循輸出以矢量形式

s1 = 

11 
00 
10 
11 
01 
11 
10 
10 
10 
10 
10 
10 
10 
01 
10 
01 

如何S1轉換爲

[1 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1] 

,所以我可以拿起位值 S1(1)將1 (3)將是0 s1(5)將是1

我已經嘗試過重塑和轉置,但沒有拿起正確的位值。欣賞任何幫助..


我做下面代碼

密文轉換爲字節,然後我計算索引變量(稱爲P)&式是MOD(否字節以下的動作, 3)..我有密文長度爲5個字節,因此索引變量(p)是2 ..我將始終將索引變量值設置爲0或1或2,這將基於no。字節的

假設密文是11001011 01111010 10101010 10011001 01010101

這個數據是五個字節那裏印出變量2

現在 對於前兩個比特(11 ),對於接下來的兩個比特(00)要被分配的索引變量爲2 ,對於接下來的兩個比特(10)要被分配爲的索引變量爲,對於接下來的兩個比特(11)要被分配爲1 的索引變量,指數v可以被分配爲2..so直到我的比特結束。


其他實施例 Ciphertet用三個字節11001011 01111010 10101010 索引變量(P)爲0

對於前兩個比特(11),索引變量要被分配爲0 對於接下來的兩個位(00),對於接下來的兩個比特(10)將索引變量分配爲1 ,對於接下來的兩個比特(11)將索引變量分配爲2 ,將索引變量分配爲0, 等等直到結束我的位..

s = '11001011 01111010 10101010 10011001 01010101' 
p = rem(numel(regexp(s,' [01]'))+1,3) 
k = (0:2)' 
s1 = reshape(regexprep(s,' ',''),2,[])' 
n = size(s1,1) 
N = k(:,ones(fix((n+1)/3)+1,1)) 
P = N(find(N(:,1) == p)+(0:n-1))' 
+0

我慢慢搞清楚什麼你正在嘗試做的。雖然我這樣做,但這裏有一個建議:從字符串中取出空格,他們不會進行操作。如果要每8個字符顯示一個空格字符串,請編寫一個函數,以每8個字符顯示一個空格的字符串。 – 2012-03-14 09:54:55

+0

好的..謝謝但是說我沒有sapces在我的字符串s ..那麼需要什麼樣的修改,以便前兩位索引變量將是2,接下來的兩個位將是1等等 – user1268559 2012-03-14 10:04:46

回答

0

s1'會給你

[11 00 10 11 ...] 

,但如果你告訴我們,輸入你的功能,我也許可以給你你真正想要的答案。

+0

s =' 11001011 01111010 10101010 10011001 01010101'p = rem(numel(regexp(s,'[01]'))+ 1,3)k =(0:2)'s1 = reshape(regexprep(s,'','') (N(1),N(n,1),N = k )== p)+(0:n-1))' – user1268559 2012-03-14 09:43:10

+3

不要將代碼片段放入評論中,他們幾乎不可讀,請編輯您的問題。 – 2012-03-14 09:45:27

0

這個問題的關鍵是元素是char類型的。然後,你可以使用重塑這樣的:

reshape(s1.',1, []) 
ans = 11001011... 

This is a similar question.