Handling of large string array

Hi,
I am dealding with a 22,000,000 x 1 string array, which causes Matlab real problems. I import the data from a .csv file of about 1gig size. But when I save it in Matlab as a .mat file, it blows up to over 9gig. How can I save this vector more efficiently?
Best

1 Comment

I cannot reproduce your problems on R2013b,64bit,Win7
>> str = char( randi([32,112],22e6,1) );
>> save( 'd:\tmp\test.mat', 'str' )
creates a file that is 18MB.

Sign in to comment.

Answers (1)

dpb
dpb on 4 Apr 2015
Cast to char() if not (default Matlab storage is double). This will be 4:1 reduction as Matlab character is 16-bit. If you're using a ASCII code, you can save another factor of 2 by converting to uint8 but Matlab may then get confused if try to use the data as character.

Categories

Asked:

on 4 Apr 2015

Edited:

on 4 Apr 2015

Community Treasure Hunt

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

Start Hunting!