Saving data as binary
20 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (2)
Voss
am 14 Mai 2022
k = [0 5 4];
arrayfun(@(x)dec2bin(x,max(1,ceil(log2(x)))),k,'UniformOutput',false)
11 Kommentare
Walter Roberson
am 20 Mai 2022
bits = {[1] [0 0] [1] [0 1 1] }
Bitstream = [bits{:}];
fid = fopen('test.bin','w');
fwrite(fid, Bitstream, 'bit1');
fclose(fid);
Ilya Dikariev
am 20 Mai 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 Kommentar
Walter Roberson
am 20 Mai 2022
Bearbeitet: Walter Roberson
am 20 Mai 2022
only 4 times smaller. Each character needs 16 bits.
If you uint8(k_new) then that would need only one byte per value
Siehe auch
Kategorien
Mehr zu Large Files and Big Data finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!