1

次のように文字列をバイナリに変換しました

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

配列に格納する方法はありますか?

4

2 に答える 2

1

ここで何をしたいのかよくわかりませんが、バイナリ表現 (numchars x bits_per_char の行列) の行を連結する必要がある場合は、次のコードを使用します。

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

二重変換は ASCII コードを返すことに注意してください。ここではMatlabのインストールにアクセスできませんが、たとえば、元の質問で提供したコードについてオクターブが文句を言います。

ノート

親切に指摘された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 に答える