How to ask the user of my project to name and save there work?

조회 수: 3 (최근 30일)
Brogan Jones
Brogan Jones 2020년 4월 5일
댓글: Brogan Jones 2020년 4월 8일
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

채택된 답변

Image Analyst
Image Analyst 2020년 4월 5일
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;

추가 답변 (1개)

Geoff Hayes
Geoff Hayes 2020년 4월 5일
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.

카테고리

Help CenterFile Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by