Saving some part of a cell array

23 views (last 30 days)
Yongmin
Yongmin on 22 Feb 2015
Commented: Yongmin on 2 Mar 2015
Hello,
I have a 1x11 cell and want to save some columns of the cell (from 1st column to 8th column only) into a MAT-file.
data =
columns 1 through 4
[21350235x8 char] [21350235x6 char] [21350235x6 char] [21350235x1 int32]
columns 5 through 8
[21350235x64 char] [21350235x10 char] [21350235x1 int32] [21350235x1 int32]
columns 9 through 11
{21350235x1 cell} {21350235x1 cell} {21350235x1 cell}
Columns 9 ~ 11 consist of character strings of variable lengths containing unicode texts. If I try to save them in MAT-file, MATLAB requires to use -v7.3 switch. The saved MAT file has too large size, I want eliminate columns 9 through 11 instead.
Could you please tell me how to do it?
Many thanks!
  8 Comments
Titus Edelhofer
Titus Edelhofer on 24 Feb 2015
There was a typo in Geoff's comment, it should be
data = data(1:8);
instead.
Titus
Yongmin
Yongmin on 24 Feb 2015
Thanks Geoff and Titus. I tried to accessing each element of the cell by data{1}, data{2}, and so on. Anyhow your comment were very helpful.

Sign in to comment.

Accepted Answer

Titus Edelhofer
Titus Edelhofer on 24 Feb 2015
Hi,
you should be able to index into data without destroying data or doing copies:
dataTruncated = data(1:8);
save someFile.mat dataTruncated
If you prefer to have the data in the file called "data", then cut of the last cells as Geoff suggested and then save ...
Titus
  10 Comments
Titus Edelhofer
Titus Edelhofer on 25 Feb 2015
Hi,
what I would do is to write two small helper functions "myload" and "mysave", that e.g. saves individual entries of your cell array to individual .mat files (maybe zip them together if you prefer to have one file), and for load to the opposite of reading the individual files.
Titus
Yongmin
Yongmin on 2 Mar 2015
Thanks a lot for your idea, Titus. I will follow your suggestion.
Regards, Yongmin

Sign in to comment.

More Answers (0)

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!