MATLAB: Save new field to a structure?!

struct

Hello! I have a 'myfile.mat' which contains several structures struct1, struct2,… Now I would like to save a new added field to one of the structures let say struct1 but it is not working when reloading the .mat file the newfield is not there, any suggestions ?! thank you !

Best Answer

There are a couple good ways to do this. If your MAT-file has a lot of data stored in it, save using the -append flag. Another approach, particularly if you need to modify more than one of the struct arrays stored in the MAT-file, is to load into a struct and save that struct using the -struct flag.
data = load('myfile.mat');
data.struct1.newfield = 42;
save('myfile.mat', '-struct', 'data')
With this approach you don't need to worry about overwriting a variable in your workspace that happens to have the same name as one of the variables in the MAT-file.
Related Question