Save Structure to .mat-file in dialog via GUI

3 views (last 30 days)
Hi everyone,
I have a GUI made in app designer in which I create a large structure with a lot of data. I now want to export/save the structure by klicking a button. This button should open a dialog in which the user is able to create a new file or to overwrite an existing file.
uisave();
and
struct = uisetfile;
are not working.
uisave() doesn't work with a structure and uisetfile requires an already existing file to write to. Is there a way to simply take that structure and write it in a .mat-file? It's not necessary to save as .mat but I think to afterwards load the data it would be the easiest way to save as .mat?!

Accepted Answer

Stephen23
Stephen23 on 8 Oct 2020
S = .. your big structure
[F,P] = uiputfile('*.mat');
save(fullfile(P,F),'-struct','S') % if S is scalar
save(fullfile(P,F),'S') % if S is non-scalar
Don't forget when loading it is strongly recommended to load into an output variable:
S = load(..)
  3 Comments
Rik
Rik on 8 Oct 2020
You should first make it a separate variable:
S = app.S;
[F,P] = uiputfile('*.mat');
save(fullfile(P,F),'-struct','S') % if S is scalar
save(fullfile(P,F),'S') % if S is non-scalar
Dominik Müller
Dominik Müller on 8 Oct 2020
Thanks a lot! Now it works perfectly!!!!!

Sign in to comment.

More Answers (0)

Categories

Find more on Environment and Settings in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!