MATLAB中回调函数的多个参数

时间:2013-10-17 01:27:42

标签: matlab user-interface callback arguments matlab-guide

我在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函数。

0 个答案:

没有答案