1

我已将字符串转换为二进制如下

message='hello my name is kamran';
messagebin=dec2bin(message);

有什么方法可以将它存储在数组中吗?

4

2 回答 2

1

我不太确定你想在这里做什么,但如果你需要连接二进制表示的行(这是一个 numchars 乘以 bits_per_char 的矩阵),这是代码:

message = 'hello my name is kamran';
messagebin = dec2bin(double(message));
linearmessagebin = reshape(messagebin',1,numel(messagebin));

请注意,双重转换会返回您的 ASCII 码。我在这里无权访问 Matlab 安装,但例如 octave 抱怨您在原始问题中提供的代码。

笔记

正如有人向我指出的那样,您必须messagebin在“序列化”它之前转置它,以获得正确的结果。

于 2012-06-10T16:16:20.987 回答
1

如果要将结果作为数字矩阵,请尝试:

>> str = 'hello world';
>> b = dec2bin(double(str),8) - '0'
b =
     0     1     1     0     1     0     0     0
     0     1     1     0     0     1     0     1
     0     1     1     0     1     1     0     0
     0     1     1     0     1     1     0     0
     0     1     1     0     1     1     1     1
     0     0     1     0     0     0     0     0
     0     1     1     1     0     1     1     1
     0     1     1     0     1     1     1     1
     0     1     1     1     0     0     1     0
     0     1     1     0     1     1     0     0
     0     1     1     0     0     1     0     0

每行对应一个字符。您可以轻松地将其重塑为 0,1 的序列

于 2012-06-10T17:12:26.563 回答