2016-11-07 3 views
0

Я имею такую ​​структуруПреобразование логического обугливаться (еще двоичный) класс

Name  Size   Bytes Class  Attributes 
txt  8x7   56  logical 

8×7 logical array 
0 1 0 1 0 0 1 
0 0 1 1 0 1 0 
0 0 0 1 1 0 1 
1 1 0 1 1 1 0 
1 1 0 0 0 0 1 
1 1 0 1 1 0 1 
0 1 0 1 1 1 0 
1 1 1 0 1 0 1 

, что я хочу конвертировать в этот один

Name   Size   Bytes Class Attributes 
txt_bin  8x7    112 char 

1010110 
1100101 
1110010 
1101110 
1100001 
1101101 
0101110 
0001010 

оба эти же «размер». Я хочу вторую структуру, чтобы получить текст через char(bin2dec(txt))

Есть ли известная функция? Я пробовал безуспешно с некоторыми reshape ..

Чтобы прояснить контекст, у меня есть ясный текст, который я конвертирую в двоичный, поэтому я могу сделать XOR с парольной фразой (Vernam crypto), и теперь я хочу расшифровать этот новый двоичный результат в char, чтобы иметь возможность отправлять зашифрованное сообщение.

Спасибо за помощь

ответ

3
txt = logical([... 
0 1 0 1 0 0 1 
0 0 1 1 0 1 0 
0 0 0 1 1 0 1 
1 1 0 1 1 1 0 
1 1 0 0 0 0 1 
1 1 0 1 1 0 1 
0 1 0 1 1 1 0 
1 1 1 0 1 0 1]); 
ch = '01'; 

txt_bin = ch([~txt(1:3,:);txt(4:7,:);~txt(8,:)] + 1) 

или

char([~txt(1:3,:);txt(4:7,:);~txt(8,:)]+'0') 
+0

Отличное решение! – obchardon

+1

Просто подумайте, что 'txt_bin = ch (~ txt + 1)' должно быть 'txt_bin = ch (txt + 1)' – obchardon

+0

@obchardon OK, ответ обновлен, некоторые строки разные! – rahnema1

Смежные вопросы