我正在创建一个GUI,其中有一个多行编辑框。
用户必须一次在此编辑框中输入3 x-y坐标:
[345.567 123.123]
[390.567 178.098]
[378.000 125.987]
单击按钮,我希望这些坐标在矩阵的形式下在Matlab GUI工作区中“保存”,并点击另一个按钮从工作区“重新加载”,以便将来可以使用。
我该怎么做?
任何人都可以指导我吗?帮助将不胜感激!
答案 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
如果要将数据导出/导出“工作空间”,可以使用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是实际数据。