Saving data as binary
24 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (2)
Voss
el 14 de Mayo de 2022
k = [0 5 4];
arrayfun(@(x)dec2bin(x,max(1,ceil(log2(x)))),k,'UniformOutput',false)
11 comentarios
Walter Roberson
el 20 de Mayo de 2022
bits = {[1] [0 0] [1] [0 1 1] }
Bitstream = [bits{:}];
fid = fopen('test.bin','w');
fwrite(fid, Bitstream, 'bit1');
fclose(fid);
Ilya Dikariev
el 20 de Mayo de 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 comentario
Walter Roberson
el 20 de Mayo de 2022
Editada: Walter Roberson
el 20 de Mayo de 2022
only 4 times smaller. Each character needs 16 bits.
If you uint8(k_new) then that would need only one byte per value
Ver también
Categorías
Más información sobre Large Files and Big Data en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!