File Exchange

image thumbnail

Fast function to save a matrix

version 1.0 (2.55 KB) by

write_matrix_bin(f,m) is a fats way to save a matrix of arbitrary size and dimension.



View License

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
( 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('', '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('') % the compressed file => 0.088620 seconds.
load('write.savev6.test') % the uncompressed file => 0.061182 seconds.

Comments and Ratings (1)


Nice tool!

MATLAB Release
MATLAB 7.8 (R2009a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video