Fast function to save a matrix
write_matrix_bin(f,m) saves the matrix "m" in a binary
file "f". write_matrix_bin is a lot faster than the built in function save(), and
takes up much less diskspace than the old "save -v6" which doesn't use compression.
write_matrix_bin also includes an option for compression with dzip
(http://www.mathworks.com/matlabcentral/fileexchange/8899). However, this
is only for convenience, and not because it's superior than the built in save()
Limitations: Think before you use write_matrix_bin() instead of save().
* Since write_matrix_bin() as default saves values as float32 it will approximate your data.
* you can't save a large matrix with compression turned on. java will urn of out heap space. This is a problem with dzip.
Here's a real life example (8000000 bytes = 7.6MB):
>> whos data_matrix
Name Size Bytes Class Attributes
data_matrix 100x100x100 8000000 double
%% Writing data to the disk
write_matrix_bin('write.compressed.test', data_matrix, 'compress', 1) => 0.509179 seconds. Filesize: 884K
save('write.save.test', 'data_matrix') => 0.582949 seconds. Filesize: 996K
write_matrix_bin('write.uncompressed.test', data_matrix) => 0.082440 seconds. Filesize: 3.9M
save -v6 'write.savev6.test' 'data_matrix' => 0.292839 seconds. Filesize: 7.7M
%% Reading data from the disk
read_matrix_bin('write.compressed.test', 'compress', 1) => 0.349878 seconds.
read_matrix_bin('write.uncompressed.test') => 0.103816 seconds.
load('write.save.test') % the compressed file => 0.088620 seconds.
load('write.savev6.test') % the uncompressed file => 0.061182 seconds.
引用
Arvid Bottiger (2024). Fast function to save a matrix (https://www.mathworks.com/matlabcentral/fileexchange/24483-fast-function-to-save-a-matrix), MATLAB Central File Exchange. 取得済み .
MATLAB リリースの互換性
プラットフォームの互換性
Windows macOS Linuxカテゴリ
タグ
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!バージョン | 公開済み | リリース ノート | |
---|---|---|---|
1.0.0.0 |