【发布时间】:2012-06-12 08:27:12
【问题描述】:
我想在 MATLAB 中尽可能高效地将整数向量 (uint8) 存储为(空间)。到目前为止,我正在使用arithenco 对向量进行编码:
bits = arithenco(z, counts);
好消息是它返回一个位向量。坏事是这些位以双精度形式存储。这意味着返回的向量大约是原始 uint8 向量的 64 倍,而整个想法是使事物更小。
那么有没有一种简单(且运行时高效)的方法来编码这些伪位,以便我真正获得空间改进?
我想出的唯一解决方案是使用bitset 将所有这些位再次存储在一个向量中,比如 uint32,但这似乎很麻烦,而且速度不是很快,因为我必须循环明确地覆盖整个位向量。
注意:我不能为此使用 Java API,否则这会相对容易。
【问题讨论】:
标签: matlab encoding bit-manipulation