我正在制作一个 GUI,其中有一个多行编辑框。
用户必须一次在此编辑框中输入 3 个 xy 坐标:
[345.567 123.123]
[390.567 178.098]
[378.000 125.987]
通过单击按钮,我希望这些坐标以矩阵的形式“保存”在 Matlab GUI 工作区中,并通过单击工作区中的另一个按钮“重新加载”,以便它们可供将来使用。
我怎样才能做到这一点?
任何人都可以指导我吗?帮助将不胜感激!
我正在制作一个 GUI,其中有一个多行编辑框。
用户必须一次在此编辑框中输入 3 个 xy 坐标:
[345.567 123.123]
[390.567 178.098]
[378.000 125.987]
通过单击按钮,我希望这些坐标以矩阵的形式“保存”在 Matlab GUI 工作区中,并通过单击工作区中的另一个按钮“重新加载”,以便它们可供将来使用。
我怎样才能做到这一点?
任何人都可以指导我吗?帮助将不胜感激!
有多种方法可以管理GUIDE 生成的 GUI 中的数据。最简单的 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');
保存数据:
setappdata(h,'name',value)
加载数据:
value = getappdata(h,'name')
values = getappdata(h)
其中 h 是您存储数据的句柄,name 是数据的变量,value 是实际数据。