MATLAB: How to create a big mat.file including many variables generated in a GUI

.mat fileguisaveworkspace

Hi Guys,
i execute a function within a GUI and the calculated variables are not in the workspace but only available within the GUI. How can i save those variables to a mat.file. I know i could write all of them into the workspace and apply the command
save('path\myfile.mat');
BUt isnt that unnecessary and ineffective to write it into workspace first? How can i save all generated variables in my GUI as a mat.file without transferring them to workspace first? is there a possibility for that?
I am very glad for help!
Best regards, John;)

Best Answer

Of course you can save those variable directly from the GUI workspace. And yes it is inefficient to transfer them to the base workspace, if they are not required there. Your code
save('path\myfile.mat');
will work just as well inside the GUI workspace as it does in the base workspace.
With a few minor differences basically every workspace (base or function) lets you do the same things: create variables, save them, call other functions, etc, etc. The difference are noted in the documentation (e.g. nargin), but functions like save can be called from any workspace.
You should read about the different workspaces:
and how to share data between them
Note that the most efficient way to share data is to pass them as variables, and the least efficient way is to use assignin or evalin (although beginners seem to love using these two functions they should be avoided).