Append rows to .mat file

3 views (last 30 days)
Brent
Brent on 9 Nov 2019
Commented: Walter Roberson on 9 Nov 2019
How do I append row(s) of data to an existing array in a .mat file. The following works except the 2nd to last line:
tableIt = [1 2 3;4 5 6;7 8 9];
tableMore = [10 11 12];
filename = 'aTable.mat';
data2store = 'tableIt';
more2store = 'tableMore';
save(filename,data2store');
whos('-file',filename);
m = matfile(filename,'Writable',true);
m.tableIt(end+1,:) = more2store;
whos('-file',filename);
  4 Comments
Walter Roberson
Walter Roberson on 9 Nov 2019
It is recommended to not use end in this context. See https://www.mathworks.com/help/matlab/ref/matlab.io.matfile.html
Brent
Brent on 9 Nov 2019
I'm looking for something that does work, do you know an alternative that works?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 9 Nov 2019
more2store = 'tableMore';
That is a 1 x 9 character vector.
tableIt = [1 2 3;4 5 6;7 8 9];
That is a 3 x 3 double.
m.tableIt(end+1,:) = more2store;
That attempts to store the 1 x 9 character vector into 3 columns of a double. That does not fit.
  4 Comments
Walter Roberson
Walter Roberson on 9 Nov 2019
If you had done
more2store = tableMore;
then it would have worked.
Walter Roberson
Walter Roberson on 9 Nov 2019
http://www.cs.utoronto.ca/~chechik/courses/csc324/white.html

Sign in to comment.

More Answers (0)

Categories

Find more on Data Import and Analysis in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!