Info

此问题已关闭。 请重新打开它进行编辑或回答。

Store permanently data taken from an edit text box of GUI

2 次查看(过去 30 天)
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)

回答(1 个)

Mischa Kim
Mischa Kim 2014-2-7
Absolutely. E.g., save your data as a .mat file. Check out this answer for more detail.
  2 个评论
ericson
ericson 2014-2-7
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 2014-2-7
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.

此问题已关闭。

Community Treasure Hunt

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

Start Hunting!

Translated by