Taking the first bit (i.e. even vs odd)

1 回表示 (過去 30 日間)
Eliza
Eliza 2020 年 12 月 17 日
コメント済み: Eliza 2020 年 12 月 18 日
Hi.
I need to read a binary data file with this information: 3600000 Samples, 8-Bits, Start Location: 112. I used the command '*uint8'.
But I have to take the first bit (i.e. even vs odd) to convert to binary 0-1 from each of the 1000 bytes. Then down sampling from 1000 to 200, by taking every 5th bit.
Can you help with that, please?

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 12 月 17 日
編集済み: Ameer Hamza 2020 年 12 月 17 日
Why not take the last bit of every fifth byte, to begin with. For example, something like this
f = fopen('filename.bin', 'r');
data = fread(f, inf, '*uint8');
data_5 = data(1:5:end);
bits = rem(data_5, 2);
  2 件のコメント
Ameer Hamza
Ameer Hamza 2020 年 12 月 17 日
rem(data_5, 2) return 0 if number is even and 1 if number is odd. So it is essentially giving the least significant bit in the numbers, which is what you want according to the question.
Eliza
Eliza 2020 年 12 月 18 日
Thank you so much.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLow-Level File I/O についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by