2014-09-28 59 views

回答

4

这可以很简单地完成这种方式:

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

它能做什么是采取A每个号码和其中n对应于在矢量那个地方拨付值与10^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

你可以做一个函数

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 
0

另一种方法。可能不是非常快,但:

base2dec(A+'0',10) 
相关问题