Saving data as binary
11 views (last 30 days)
Show older comments
Basically, i have for example k = [0 5 4], i want it to be saved as [0 101 100] instead of [00000000 00000101 00000100] so that it takes the least size possible, how can i do that ?
0 Comments
Answers (2)
Voss
on 14 May 2022
k = [0 5 4];
arrayfun(@(x)dec2bin(x,max(1,ceil(log2(x)))),k,'UniformOutput',false)
11 Comments
Walter Roberson
on 20 May 2022
bits = {[1] [0 0] [1] [0 1 1] }
Bitstream = [bits{:}];
fid = fopen('test.bin','w');
fwrite(fid, Bitstream, 'bit1');
fclose(fid);
Ilya Dikariev
on 20 May 2022
k_new=str2num(dec2bin(k))' would do. But if you want to still reduce the the size, just use dec2bin which keeps the data in char type which is 8 times smaller
1 Comment
Walter Roberson
on 20 May 2022
Edited: Walter Roberson
on 20 May 2022
only 4 times smaller. Each character needs 16 bits.
If you uint8(k_new) then that would need only one byte per value
See Also
Categories
Find more on Large Files and Big Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!