I have a variable dimension double in workspace.This contains 4 individual physiological data in 4 rows. I want to save this variable with lowest possible size in the current folder. If I am not wrong the file format should be binary. How do I save this variable in current folder as a .bin file sothat later I can load it and work with it?

 Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 30 Sep. 2020

2 Stimmen

Save in a .mat file(); you will get much better compression: https://www.mathworks.com/help/matlab/import_export/mat-file-versions.html. In the bin file, each double number will take a full 8 bytes.

5 Kommentare

Jhon Gray
Jhon Gray am 30 Sep. 2020
Bearbeitet: Jhon Gray am 30 Sep. 2020
okay. Thanks a lot
Jhon Gray
Jhon Gray am 30 Sep. 2020
Bearbeitet: Jhon Gray am 30 Sep. 2020
However, I want to check how much the bin file take. Can you please help me with the code. I have seen binary file write function which needs to load a binary file. But can't figue out how to create one.
See the following example
rng(0);
M = rand(1000); % create matrix
save('data.mat', 'M'); % save using .mat
% save in .bin file
f = fopen('data.bin', 'w');
fwrite(f, M, 'double');
fclose(f);
% load from .bin file
f = fopen('data.bin', 'r');
data = reshape(fread(f, inf, 'double'), size(M)); % binary file also does not store the matrix dimensions by default
fclose(f);
Jhon Gray
Jhon Gray am 30 Sep. 2020
Thanks a lot
Ameer Hamza
Ameer Hamza am 1 Okt. 2020
I am glad to be of help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by