【问题标题】:Matlab string operationMatlab字符串操作
【发布时间】:2012-06-13 18:23:36
【问题描述】:

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

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

有没有办法把它存入数组?

【问题讨论】:

  • messagebin 已经是一个字符数组。你到底想要什么?举个输出的例子
  • 一开始我不知道你可以在这样的字符串上做 dec2bin .. 例如 octave 抱怨很长时间。

标签: string matlab binary


【解决方案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,以获得正确的结果。

【讨论】:

  • 其实你需要先转置messagebin,然后再线性化成向量:reshape(messagebin',1,[]);
【解决方案2】:

如果您希望结果为数字矩阵,请尝试:

>> 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 的序列

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 2019-08-28
    相关资源
    最近更新 更多