我正在寻求帮助来编写代码在Matlab中执行以下操作:
(1)I有一个列向量A维度的nx1列出n位的数字的逗号之后B在基座4之间0和1
我在这里解释了基数4的含义
例
n=18
A=[1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2]' %representing B=0.121212121212121212
Run Code Online (Sandbox Code Playgroud)
(2)我想转换B为基数10(十进制表示)并将获得的十进制数存储C在1x1矩阵中
你能帮我理解怎么做吗?
这是一种方式:
C = base2dec(char(A(:).'+'0'), 4)*4^-numel(A);
Run Code Online (Sandbox Code Playgroud)
这将数字转换为基数的整数4,然后除以适当的幂4.
考虑到精度C会受到限制double,因此可能会丢失一些小数.如果需要更高的精度,则需要使用符号变量.