我正试图在Matlab中以紧凑格式编写一些位序列,以测试我的golomb rice压缩代码。这是对C代码的测试。这在Matlab中有点"伪造",因为进行位运算是没有意义的。但这是为了测试。我有一个类似"10111"的东西,我想把它写成一个文本文件中的一个字符,然后看看我实现了什么压缩。我在matlab中找不到将位序列写入ASCII的方法。有什么帮助吗?
据我所知,您希望将1
和0
保存为"二进制"格式,而不是由字符"1"one_answers"0"组成的文本。下面是一个如何做到这一点的例子:
filename = 'test.bin';
x = randi([0 1], 1, 10*8);
fid = fopen(filename, 'w');
fwrite(fid, x, 'ubit1');
'ubit1'
标志告诉fwrite
函数将向量x
解释为1位数字。
在上面的例子中,得到的文件大小正好是10字节。