在Matlab中转换为十进制?

use*_*148 2 matlab base

我正在寻求帮助来编写代码在Matlab中执行以下操作:

(1)I有一个列向量A维度的nx1列出n位的数字的逗号之后B基座4之间01

在这里解释了基数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(十进制表示)并将获得的十进制数存储C1x1矩阵中

你能帮我理解怎么做吗?

Lui*_*ndo 5

这是一种方式:

C = base2dec(char(A(:).'+'0'), 4)*4^-numel(A);
Run Code Online (Sandbox Code Playgroud)

这将数字转换为基数的整数4,然后除以适当的幂4.

考虑到精度C会受到限制double,因此可能会丢失一些小数.如果需要更高的精度,则需要使用符号变量.