我在Matlab中有一个维度为t
的列向量nx1
报告基数d
中数字A的逗号后面的数字。我希望将其转换为1x1
双重报告基数10
中的数字A.我对案例d=2
和d=3
感兴趣。
实施例
%d=3
t=[0 2 0 2 2 0 0 2 0]'; %that is A=0.020220020 in base 3
%d=2
t=[0 1 1 1 0 0 0 1 0]'; %that is A=0.011100010 in base 2
答案 0 :(得分:1)
A = base2dec(char(t(:).'+'0'), d) / d^numel(t);
其工作原理如下:
d
中定义整数。这样您就可以使用base2dec
进行转换(请注意,此函数的输入必须为char
)。d
的适当功率,以考虑输入数字实际上是小数点的右。例如,给定
t = [0 2 0 2 2 0 0 2 0]';
d = 3;
结果是
A =
0.255448864502362