我在MATLAB中使用GUIDE创建了我的第一个GUI。
GUI的目的是执行具有不同参数的函数
代码的基本结构如下:
我有几个参数,用户将选择然后执行具有所有这些参数的函数。名为RSM的名为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函数。