二进制矢量到字符串

时间:2015-11-19 19:23:11

标签: string matlab vector binary

我想将24位的二进制向量转换为单个字符串。

例如,我应该从此向量中获取字符串:'101010101010101010101010'[1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0]

我试过了:

binary_vector = [1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0];
A = num2str(binary_vector);
l = length(A);

我获得了:

A =

1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  0


l =

    70

我不明白为什么A的长度是70?难道不是24岁吗?

2 个答案:

答案 0 :(得分:4)

那是因为你在最终结果中也包含了空格。在上面的回答中,烧杯使用num2strsprintf的格式说明符建议了正确的方法。但是,如果您的字符串只包含0/1,我建议的另一种方法是为所有数字添加48,然后使用char进行投射:

A = char(binary_vector + 48);

01的ASCII代码分别为48和49,因此如果您为所有数字添加48,则使用char,您将每个数字表示为它们的ASCII等价物,因此将您的号码转换为0/1字符串。

更具可读性的东西可以是:

A = char(binary_vector + '0');

'0'合并为等效的double值,即48,因为它是0的ASCII码。当您向double添加内容时,binary_vectordoubles的向量,该类型会转换为等效的double类型。这取决于你的偏好,但是由于代码打高尔夫球,我习惯了第一个习惯。

我们得到:

>> A

A =

101010101010101010101010

答案 1 :(得分:1)

尝试:

<Image source={CharacterImage} style={{width: null,}} resizeMode={Image.resizeMode.contain}/>