我想将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岁吗?
答案 0 :(得分:4)
那是因为你在最终结果中也包含了空格。在上面的回答中,烧杯使用num2str
或sprintf
的格式说明符建议了正确的方法。但是,如果您的字符串只包含0/1
,我建议的另一种方法是为所有数字添加48,然后使用char
进行投射:
A = char(binary_vector + 48);
0
和1
的ASCII代码分别为48和49,因此如果您为所有数字添加48,则使用char
,您将每个数字表示为它们的ASCII等价物,因此将您的号码转换为0/1
字符串。
更具可读性的东西可以是:
A = char(binary_vector + '0');
'0'
合并为等效的double
值,即48,因为它是0
的ASCII码。当您向double
添加内容时,binary_vector
是doubles
的向量,该类型会转换为等效的double
类型。这取决于你的偏好,但是由于代码打高尔夫球,我习惯了第一个习惯。
我们得到:
>> A
A =
101010101010101010101010
答案 1 :(得分:1)
尝试:
<Image source={CharacterImage} style={{width: null,}} resizeMode={Image.resizeMode.contain}/>