You could use uiputfile to select a file name to be created:
(If you want to get a file to load, use uigetfile)
But there is actually a command called uisave which saves variables from the workspace. You just need to tell it what...
To get the variable names from the workspace, use whos:
Interestingly, you can also do this on an existing .mat file, if you want to choose what to load back later:
vars = whos('-file', 'yourdata.mat');
For list boxes, you need a uicontrol
You might want to use GUIDE to help you creating a user interface if you are not comfortable with MatLab or UI programming in other languages.
This is also worth a read: