2012-03-14 71 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.