整数のベクトル (uint8) を MATLAB で可能な限り (空間) 効率的に格納したいと考えています。これまでのところ、arithencoを使用してベクトルをエンコードしています。
bits = arithenco(z, counts);
良いことは、ビットのベクトルを返すことです。悪い点は、ビットが倍精度で格納されることです。これは、返されるベクトルが元の uint8 ベクトルの約 64 倍であることを意味しますが、全体的なアイデアは物事を小さくすることでした。
それで、実際にスペースを改善できるように、これらの疑似ビットをエンコードする簡単な(そして実行効率の高い)方法はありますか?
私が思いついた唯一の解決策は、bitsetを使用して、これらすべてのビットを uint32 などのベクトルに格納することですが、ビット ベクトル全体をループする必要があるため、これは面倒であまり高速ではないようです。明示的に。
注: Java API を使用することはできません。それ以外の場合は比較的簡単でした。