【发布时间】:2015-12-17 22:20:27
【问题描述】:
我有一个数组A=[1,0,1,1,1,0]。我想将其转换为十进制数B = 101110。我已经尝试了所有的转换功能,但找不到合适的解决方案。
【问题讨论】:
标签: matlab
我有一个数组A=[1,0,1,1,1,0]。我想将其转换为十进制数B = 101110。我已经尝试了所有的转换功能,但找不到合适的解决方案。
【问题讨论】:
标签: matlab
这可以通过这种方式非常简单地完成:
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(:);
【讨论】:
你可以做一个函数
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
【讨论】:
另一种方法。不过可能不是很快:
base2dec(A+'0',10)
【讨论】: