将数组元素转换为单个数字

时间:2014-09-28 10:08:36

标签: matlab

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

3 个答案:

答案 0 :(得分:4)

这可以通过这种方式完成:

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

正如路易斯评论的那样,它也可以作为

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

答案 1 :(得分:1)

你可以做一个功能

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

答案 2 :(得分:0)

又一种方法。可能不是很快,但是:

base2dec(A+'0',10)