I have an array which contains only 0s and 1s. Each data pt is getting saved as an 8 bit integer. How do I save it as a bit to save my memory space?

回答 (2 件)

Andrei Bobrov
Andrei Bobrov 2012 年 4 月 11 日

0 投票

in your case use logical array
a1 = randi([0 1],10));
a2 = logical(a1);

1 件のコメント

Naved Patanwala
Naved Patanwala 2012 年 4 月 11 日
Thanks for your suggestion.
That converts the array to logical but while saving, the memory size required remains the same. It saves '0' as '0000 0000' and 1 as '0000 0001'. Is there any way of saving bits individually because all I need is 0 and 1 which I can get from the last bit itself. That can save me a lot of memory space since my array has more than 10 lakhs of data pts.

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

Mohammad Reza Naderi
Mohammad Reza Naderi 2020 年 7 月 29 日

0 投票

fwrite(fileID,A,precision,skip) Use fwrite for this work. https://www.mathworks.com/help/matlab/ref/fwrite.html#d120e398961

1 件のコメント

Mohammad Reza Naderi
Mohammad Reza Naderi 2020 年 7 月 29 日
If you want to save with specific precision use instead of precision ubitn

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

カテゴリ

製品

タグ

質問済み:

2012 年 4 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by