在Matlab的指南中,我尝试使用choose_data_button首次选择该文件时,使用数据文件的标题动态更改弹出菜单的文本。但是,它给了我一个错误,即group_variable_popupmenu是一个不存在的字段。
这篇文章可能有我的问题的答案,但我不明白发生了什么:MATLAB GUI error Reference to non-existent field '---'
$scope.toggleFiltering = function(){
$scope.gridOptions.enableFiltering = !$scope.gridOptions.enableFiltering;
$scope.gridApi.core.notifyDataChange( uiGridConstants.dataChange.COLUMN );
};
使用GUIDATA而不是get / set是更好的选择吗? GUIDE和Matlab的新手,所以任何解释都会非常有用。
编辑 - 完整错误消息:
% --- Executes on button press in choose_data_button.
function choose_data_button_Callback(hObject, eventdata, handles)
% hObject handle to choose_data_button (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[filename, pathname] = uigetfile( ... );
set(handles.patient_data_file, 'string', fullfile(pathname,filename));
data = csvimport(fullfile(pathname, filename));
%%%%% ERROR (Reference to non-existent field 'group_variable_popupmenu'.):
set(handles.group_variable_popupmenu, 'string', data(1,:));
% --- Executes on selection change in group_variable_popupmenu.
function group_variable_popupmenu_Callback(hObject, eventdata, handles)
% hObject handle to group_variable_popupmenu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes during object creation, after setting all properties.
function group_variable_popupmenu_CreateFcn(hObject, eventdata, handles)
% hObject handle to group_variable_popupmenu (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
答案 0 :(得分:0)
我最近在我的一个代码中遇到了一些关于此错误的问题,我遇到了与找到合适答案相同的麻烦,我最后才发现这个问题。
我的问题是,一旦我输入了一个回调函数,它就找不到我的一个人的字段。
我找到的解决方案是在回调函数中移动我的图形创建,而不是在外面。
也许尝试通过在回调函数的开头移动弹出菜单创建来做同样的事情,或者沿着线条移动。
答案 1 :(得分:0)
这可能很简单,但您是从指南或命令窗口运行GUI图吗?我一开始多次犯的一个错误就是双击文件夹菜单中的.fig文件(不调用构造函数),而不是通过输入.fig文件的名称从命令窗口调用它(或者通过指南,作为替代方案)。