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?

 채택된 답변

Ameer Hamza
Ameer Hamza 2020년 9월 30일

2 개 추천

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

Jhon Gray
Jhon Gray 2020년 9월 30일
편집: Jhon Gray 2020년 9월 30일
okay. Thanks a lot
Jhon Gray
Jhon Gray 2020년 9월 30일
편집: Jhon Gray 2020년 9월 30일
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 2020년 9월 30일
Thanks a lot
Ameer Hamza
Ameer Hamza 2020년 10월 1일
I am glad to be of help!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

제품

릴리스

R2020a

질문:

2020년 9월 30일

댓글:

2020년 10월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by