How to ask the user of my project to name and save there work?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Brogan Jones
am 5 Apr. 2020
Kommentiert: Brogan Jones
am 8 Apr. 2020
Doing some work for uni, was wondering if anyone knew how to right some code in order for the user to be able to save the work then load it at a later stage. My work so far is below.
floor=input('Please Input The number of floors you wish to enter:');
space = [];
dim = [];
listcoordinates = [];
spaceList = {'Residential','Office','Education','Toilet','Storage'};
spaceType = {'Residential','Office','Education','Toilet','Storage'};
floorLevel = {};
for i = 0:1:floor-1
rooms=inputdlg(['How many spaces on floor ',num2str(i),'?: ']);
space(end + 1) = str2double(rooms);
end
for k=0:1:floor-1
msg = msgbox(['For floor ',num2str(k),','],'Floor');
uiwait(msg);
for i=0:1:space(k+1)-1
result1 = inputdlg({['Width of space ',num2str(i+1),': '],['Length of space ',num2str(i+1),': '],['Height of space ',num2str(i+1),': ']},'Dimensions');
dim{k+1}{1,i+1} = str2double(result1{1});
dim{k+1}{2,i+1} = str2double(result1{2});
dim{k+1}{3,i+1} = str2double(result1{3}); % Columns are spaces, rows are dimensions for width, height, length.
type = listdlg('ListString', spaceList,...
'SelectionMode', 'Single', 'PromptString', 'Select item', 'Initialvalue', 1,'Name', 'Make choice');
floorLevel{k+1}{i+1} = spaceType(type);
result2 = inputdlg({['x-coordinate of space ',num2str(i+1),': '],['y-coordinate of space ',num2str(i+1),': ']},'Coordinates');
listcoordinates{k+1}{1,i+1} = str2double(result2{1});
listcoordinates{k+1}{2,i+1} = str2double(result2{2});
end
end
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 5 Apr. 2020
Try save() and load():
% Get the name of the file that the user wants to save.
% Note, if you're saving an image you can use imsave() instead of uiputfile().
startingFolder = pwd; % Or userpath or wherever you want.
defaultFileName = fullfile(startingFolder, 'Building Variables.mat');
[baseFileName, folder] = uiputfile(defaultFileName, 'Specify a file');
if baseFileName == 0
% User clicked the Cancel button.
return;
end
fullFileName = fullfile(folder, baseFileName)
save(fullFileName, 'listcoordinates', 'result2', 'floorLevel', 'spacelist');
Then to recall:
% Have user browse for a file, from a specified "starting folder", IF you're not using a fixed name.
% For convenience in browsing, set a starting folder from which to browse.
startingFolder = pwd; % or 'C:\wherever';
if ~isfolder(startingFolder)
% If that folder doesn't exist, just start in the current folder.
startingFolder = pwd;
end
% Get the name of the file that the user wants to use.
defaultFileName = fullfile(startingFolder, '*.*');
[baseFileName, folder] = uigetfile(defaultFileName, 'Select a file');
if baseFileName == 0
% User clicked the Cancel button.
return;
end
fullFileName = fullfile(folder, baseFileName)
s = load(fullFileName);
listcoordinates = s.listcoordinates;
results2 = s.result2;
floorLevel = s.floorLevel;
spacelist = s.spacelist;
Weitere Antworten (1)
Geoff Hayes
am 5 Apr. 2020
Brogan - consider using the uiputfile dialog to prompt the user to choose a folder and filename for their data
[filename, path] = uiputfile('*.mat');
(I'm assuming that since you want to save their work, we will save the variables to a mat file). Then use save to save which ever variables to that file.
Siehe auch
Kategorien
Mehr zu Develop Apps Using App Designer finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!