【问题标题】:Concatenate strings of digits in matlab在matlab中连接数字字符串
【发布时间】:2013-05-01 20:23:38
【问题描述】:

假设我有一系列字符串,例如:

a = '101010101010'
b = '010101'
c = '000101010'  

Matlab 中有没有办法将它们连接起来并生成二进制数 101010101010010101000101010?

【问题讨论】:

  • 您想要连接的二进制字符串还是连接的二进制字符串的十进制等效项? (如果是后者,您可以将 bin2dec 函数与任何 OP 的答案结合使用。)
  • 是的,不清楚你想要什么,也许是逻辑向量?即:[a,b,c] - '0'
  • 我需要连接的字符串,比如 d = strcat(a, b, c),是一个二进制数,而不是 strcat 输出的十进制等值
  • 你搞混了,连接的结果是二进制 representation saved in char 格式。
  • 重复一个单词不会增加信息量,也不会让我们更接近你想要的。

标签: matlab binary type-conversion


【解决方案1】:

使用串联运算符[ ],与水平串联,(垂直串联; 将在此处失败,除非您将reshape() 转换为列向量):

[a,b,c]

但是,我建议将变量存储在一个元胞数组中:

s = {'101010101010','010101', '000101010'};
[s{:}]

cat(2,s{:})

【讨论】:

    【解决方案2】:

    要连接字符串,你可以说:

    out = [a b c];
    

    或者:

    out = strcat(a,b,c);
    

    另一种方式:

    out = sprintf('%s', a,b,c);
    

    【讨论】:

      【解决方案3】:

      我认为这应该可行:

      res = [a,b,c]
      

      或者调用

      res = strcat(a,b,c)

      或者,还是

      res = cat(2,a,b,c)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-09
        • 1970-01-01
        • 2014-01-16
        • 1970-01-01
        • 1970-01-01
        • 2021-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多