【问题标题】:Convert array elements to single number [duplicate]将数组元素转换为单个数字[重复]
【发布时间】:2015-12-17 22:20:27
【问题描述】:

我有一个数组A=[1,0,1,1,1,0]。我想将其转换为十进制数B = 101110。我已经尝试了所有的转换功能,但找不到合适的解决方案。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    这可以通过这种方式非常简单地完成:

    B = sum(A.*10.^(numel(A)-1:-1:0))
    B =
          101110
    

    它所做的是将A 中的每个数字与10^n 相乘,其中n 对应于向量中相应位置的值。通过对这个新向量求和,您将得到答案。 相当于:

    1*10^5 + 0*10^4 + 1*10^3 + 1*10^2 + 1*10^1 + 0*10^0
    

    正如 Luis 所说,也可以这样做

    B = 10.^(numel(A)-1:-1:0) * A(:);
    

    【讨论】:

      【解决方案2】:

      你可以做一个函数

      function decimal = array2dec(A)
      nA = length(A);
      decimal = 0;
      for i = 1:nA
          decimal = decimal + A(i)*10^(nA-i);
      end
      

      保存。

      >> A = [1,0,1,1,1,0];
      >> dec = array2dec(A)
      >> dec =
      >>    101110
      

      【讨论】:

        【解决方案3】:

        另一种方法。不过可能不是很快:

        base2dec(A+'0',10)
        

        【讨论】:

          猜你喜欢
          • 2014-12-27
          • 1970-01-01
          • 2018-02-11
          • 1970-01-01
          • 2021-09-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-05
          相关资源
          最近更新 更多