我在 MATLAB 中使用 GUIDE 创建了我的第一个 GUI。
GUI 的目的是执行具有不同参数的函数
代码的基本结构如下:
我有几个参数可供用户选择,然后使用所有这些参数执行一个函数。名为 RSM 的函数存储在与 GUI .fig 和 .m 文件相同的文件夹中
GUI 基本结构如下所示
- 不同的列表框,用户可以在其中选择不同的值。每个列表框都是我的主要功能的一个参数
- 使用参数执行主函数的按钮
每个列表框的编码如下:
function popupmenu_contour_style_Callback(hObject, eventdata, handles)
contour_style=get(hObject,'Value');
handles.contour_style=contour_style;
guidata(hObject, handles);
然后主按钮编码如下:
function pushbutton2_Callback(hObject, eventdata, handles)
fitted_values = RSM_plot_function(...
handles.fullpathname,...
get(handles.checkbox_realspace,'Value'),...
get(handles.checkbox_reciprocalspace,'Value'),...
get(handles.popupmenu_plot_type,'Value'),...
get(handles.checkbox_color,'Value'),...
get(handles.checkbox_correctionforomega,'Value'),...
get(handles.checkbox_includeoriginline,'Value'),...
get(handles.popupmenu_contour_style,'Value'),...
get(handles.listbox_fitting,'Value'),...
get(handles.grid_density,'Value'),...
get(handles.contour_number,'Value')...
);
即使用户没有更改它们,我也使用这种技术来读取每个列表框的值。
当我第一次运行该程序时,它运行良好。但是,如果我更改某些列表框的参数,我会收到一个奇怪的错误:
Error while evaluating uicontrol Callback
Error using handle.handle/get
Invalid or deleted object.
Error in RSM>pushbutton2_Callback (line 227)
fitted_values = RSM_plot_function(...
我不确定是否了解此错误的原因。我也不确定我使用了正确的方法来获取列表框的值并将它们作为参数传递给我的 RSM 函数。