How to load, update and save data neatly
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Adam
el 3 de Sept. de 2014
Comentada: Adam
el 3 de Sept. de 2014
I have a variable saved to a .mat file which I wish to load in, update (extend) and save out again to the same file.
Obviously I can just call load with no output argument and then save. But people generally seem to say that
s = load( someFilename );
is far better than using the no output argument form. This I understand.
What I am finding difficult to do neatly is the saving back of my updated data. I can update easily as:
s.myVar = someFunction( s.myVar );
but then I can't just do:
save( someFilename, 's' )
as that will leave me with a structure in my file which would not then match the original format. I also can't do:
save( someFilename, 's.myVar' )
as this is clearly nonsense.
So do I really have to do the following?:
myVar = s.myVar;
save( someFilename, 'myVar' )
If so this seems to obviate the purpose of calling load with an output argument in the first place.
0 comentarios
Respuesta aceptada
Star Strider
el 3 de Sept. de 2014
See if the matfile function does what you want. (I’m not certain when it was introduced, but it’s in R2014a.)
3 comentarios
Star Strider
el 3 de Sept. de 2014
Yes, according to the documentation, it doesn’t support user-defined classes. Sorry.
Más respuestas (1)
Guillaume
el 3 de Sept. de 2014
Editada: Guillaume
el 3 de Sept. de 2014
save(someFilename, '-struct', 's');
Will save the fields as individual variables (it's in the documentation of save!)
You can even specify which fields you want to save:
save(someFilename, '-struct', 's', 'fieldname1', 'fieldname2, ...);
Ver también
Categorías
Más información sobre Workspace Variables and MAT-Files en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!