В GUIDE Matlab я пытаюсь динамически изменять текст всплывающего меню с заголовком файла данных, когда этот файл сначала выбирается с помощью кнопки select_data_button. Однако это дает мне ошибку, что group_variable_popupmenu является несуществующим полем.Ошибка MATLAB GUIDE: ссылка на несуществующее поле
Это сообщение может получить ответ на мой вопрос, но я не понимаю, что происходит: MATLAB GUI error Reference to non-existent field '---'
% --- 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
бы использовать GUIDATA вместо Get/Set быть лучшим вариантом? Новое для GUIDE и Matlab, поэтому любое объяснение было бы чрезвычайно полезно.
Редактировать - Полное сообщение об ошибке:
Reference to non-existent field 'group_variable_popupmenu'.
Error in mockup>choose_data_button_Callback (line 148)
set(handles.group_variable_popupmenu, 'string', data(1,:));
Error in gui_mainfcn (line 95)
feval(varargin{:});
Error in mockup (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)mockup('choose_data_button_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating UIControl Callback
С предоставленным кодом нет причин, по которым это не сработало. Вы вносили изменения в структуру ручек в другом месте в файле? Каково полное сообщение об ошибке? – excaza
Не изменили структуру ручек, о которой я знаю. Только время, которое я использовал, это для gets/sets. – Nemophilia
Время, чтобы узнать, как отлаживать. Используйте [отладчик MATLAB] (http://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html#brqxeeu-177) и приостановите выполнение в строке, которая создает ошибку. Посмотрите имена полей в 'handles' и посмотрите, является ли' group_variable_popupmenu' одним из них. – excaza