如何在GUI指南中保存编辑框数据?

时间:2012-07-28 12:01:55

标签: matlab user-interface matlab-guide editbox

我正在创建一个GUI,其中有一个多行编辑框。

用户必须一次在此编辑框中输入3 x-y坐标:

[345.567 123.123] 
[390.567 178.098]
[378.000 125.987]

单击按钮,我希望这些坐标在矩阵的形式下在Matlab GUI工作区中“保存”,并点击另一个按钮从工作区“重新加载”,以便将来可以使用。

我该怎么做?

任何人都可以指导我吗?帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

GUIDE生成的GUI中有manage data种方法。最简单的IMO是使用guidata

例如,在“保存”按钮回调中,您将访问编辑框字符串内容,解析为数字矩阵,并将其保存在handles结构中。

function pushbuttonSave_Callback(hObject, eventdata, handles)
    handles.M = str2num(get(handles.edit1, 'String'));
    guidata(hObject, handles);
end

接下来在“加载”按钮中,我们执行相反的操作,方法是从handles结构加载矩阵,将其转换为字符串,然后设置编辑框内容:

function pushbuttonLoad_Callback(hObject, eventdata, handles)
    s = num2str(handles.M, '%.3f %.3f\n');
    set(handles.edit1, 'String',s)
end

screenshot

如果要将数据导出/导出“工作空间”,可以使用ASSIGNIN / EVALIN函数:

assignin('base','M',handles.M);

handles.M = evalin('base','M');

答案 1 :(得分:0)

保存数据:

setappdata(h,'name',value) 

加载数据:

value = getappdata(h,'name')
values = getappdata(h)

其中h是存储数据的句柄,name是数据的变量,value是实际数据。