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