I have a code that I want to make an app of using GUIDE. The code takes a mat file as an input, makes some calculations and then plots two figures. When I implement this in GUIDE, I am able to get the first two steps alright. However, when I try to plot in the guide axes, I get the error: Reference to non-existent field 'axes1'. I am also attaching the fig file for the GUI. Thanks a ton for your help, Matlab community!
Here is the code:
function varargout = Disoplotter(varargin)%DISOPLOTTER MATLAB code file for Disoplotter.fig
% DISOPLOTTER, by itself, creates a new DISOPLOTTER or raises the existing
% singleton*.
%
% H = DISOPLOTTER returns the handle to a new DISOPLOTTER or the handle to
% the existing singleton*.
%% DISOPLOTTER('Property','Value',...) creates a new DISOPLOTTER using the
% given property value pairs. Unrecognized properties are passed via
% varargin to Disoplotter_OpeningFcn. This calling syntax produces a
% warning when there is an existing singleton*.
%% DISOPLOTTER('CALLBACK') and DISOPLOTTER('CALLBACK',hObject,...) call the
% local function named CALLBACK in DISOPLOTTER.M with the given input
% arguments.
%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Disoplotter
% Last Modified by GUIDE v2.5 03-Aug-2017 15:09:34
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Disoplotter_OpeningFcn, ... 'gui_OutputFcn', @Disoplotter_OutputFcn, ... 'gui_LayoutFcn', [], ... 'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});endif nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT
% --- Executes just before Disoplotter is made visible.
function Disoplotter_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin unrecognized PropertyName/PropertyValue pairs from the
% command line (see VARARGIN)
% Choose default command line output for Disoplotter
handles.output = hObject;% Update handles structure
guidata(hObject, handles);plot(handles.axes1,[1 2 3],[1 2 3])% UIWAIT makes Disoplotter wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Disoplotter_OutputFcn(hObject, eventdata, handles)% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on button press in pushbutton2.
function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)[FileName,~]=uigetfile('*.mat','Get File')handles = load(FileName)guidata(hObject,handles)% --- Executes on button press in pushbutton1.
function edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text
% str2double(get(hObject,'String')) returns contents of edit2 as a double
handles.geneName = get(hObject,'String');guidata(hObject,handles);disp(handles.geneName);% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');endfunction pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)userInput = handles.geneName;disp(userInput)%disp(length(handles.proteome_1_end))
%Code that does a bunch of calculations here
%Code that does a bunch of calculations here%Code that does a bunch of calculations here%Code that does a bunch of calculations here%%This is where I want to plot in axes 1
[countsSW, binCentersSW] = hist(sort(swarmerYY),XX);axes(handles.axes1);bar(binCentersSw, countsSw, 'BarWidth', 1);
Best Answer