1

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

用户必须一次在此编辑框中输入 3 个 xy 坐标:

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

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

我怎样才能做到这一点?

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

4

2 回答 2

1

有多种方法可以管理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');
于 2012-07-29T01:00:20.590 回答
0

保存数据:

setappdata(h,'name',value) 

加载数据:

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

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

于 2012-08-01T19:46:12.797 回答