Filter löschen
Filter löschen

Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

Store permanently data taken from an edit text box of GUI

1 Ansicht (letzte 30 Tage)
ericson
ericson am 7 Feb. 2014
Geschlossen: Stephen23 am 21 Okt. 2019
Hi! Is it possible to store/save the data taken from an edit text box permanently? (the data is still present even if I closed my program/GUI)

Antworten (1)

Mischa Kim
Mischa Kim am 7 Feb. 2014
Absolutely. E.g., save your data as a .mat file. Check out this answer for more detail.
  2 Kommentare
ericson
ericson am 7 Feb. 2014
can you explain to me this part, I can't understand how it works
temp = load('testmatfile.mat');
data=temp.data;
uictagnames = fieldnames(data);
for i =1:numel(uictagnames)
str=sprintf('uicparams = fieldnames(data.%s)',uictagnames{i});
evalc(str);
for j = 1:numel(uicparams)
evalstr = sprintf('tempval = data.%s.%s',uictagnames{i},uicparams{j});
evalc(evalstr);
if ~isnumeric(tempval)
evalstr = sprintf('set(handles.%s,''%s'',''%s'')',uictagnames{i}, uicparams{j},tempval);
else
evalstr = sprintf('set(handles.%s,''%s'',%d)',uictagnames{i}, uicparams{j}, tempval);
end
evalc(evalstr);
end
end
Mischa Kim
Mischa Kim am 7 Feb. 2014
To see how it works, download reloading_param.m and the corresponding .fig file, remove some of the semi-colons from the evalstr commands in the code you pasted above and run the .m file.
Now, in the GUI enter a string in the top edit box, e.g., 007. When you do that the string gets saved in the variable handles.mystructdata in the callback function edit1_Callback. Hitting the SAVE DATA button saves the variable in data and to a .mat file:
data = handles.mystructdata
save('testmatfile.mat','data');
Close and re-open the GUI and hit the RELOAD DATA button.
temp = load('testmatfile.mat');
data=temp.data;
All the data from the .mat file is transfered into data. In the following loop the individual variables are backed out, one by one, and entered back into the corresponding GUI objects (which are recognized by their unique tags), the edit boxes, via the evalstr commands.

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by