要实现一个这样的功能:点击单选框选择输出的图像,并且text的字也就是标题能随着按钮的切换来改变,比如点击的是“正弦曲线”,那么此时“图像”变成了“sin(x)”,并且在坐标里也会显示出正弦波形。“EXIT”按钮实现的是关闭程序的功能。效果图如下。
- 首先打开GUI的界面,拖3个radiobutton、1个pushbutton、1个text、1个axes。
- 分别设置他们的属性,随你喜好。
- 分别对控件编译程序。
function GUI_1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
handles.x = -4*pi:0.01:4*pi;%先设置横坐标的量
guidata(hObject, handles);
设置初始横坐标的范围
function radiobutton1_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'value',1);
set(handles.radiobutton2,'value',0);
set(handles.radiobutton3,'value',0);
set(handles.text1,'String','sin(x)');
x = handles.x;
y = sin(x);
plot(handles.show, x, y);
grid on;
function radiobutton2_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'value',0);
set(handles.radiobutton2,'value',1);
set(handles.radiobutton3,'value',0);
set(handles.text1,'String','cos(x)');
x = handles.x;
y = cos(x);
plot(handles.show, x, y);
grid on;
function radiobutton3_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'value',0);
set(handles.radiobutton2,'value',0);
set(handles.radiobutton3,'value',1);
set(handles.text1,'String','Sa(x)');
x = handles.x;
y = sin(x)./x;
plot(handles.show, x, y);
grid on;
三个按钮控件的编译
function pushbutton1_Callback(hObject, eventdata, handles)
close;
EXIT按钮的编译
效果图
完整代码
function varargout = GUI_1(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUI_1_OpeningFcn, ...
'gui_OutputFcn', @GUI_1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function GUI_1_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
handles.x = -4*pi:0.01:4*pi;
guidata(hObject, handles);
function varargout = GUI_1_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function radiobutton1_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'value',1);
set(handles.radiobutton2,'value',0);
set(handles.radiobutton3,'value',0);
set(handles.text1,'String','sin(x)');
x = handles.x;
y = sin(x);
plot(handles.show, x, y);
grid on;
function radiobutton2_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'value',0);
set(handles.radiobutton2,'value',1);
set(handles.radiobutton3,'value',0);
set(handles.text1,'String','cos(x)');
x = handles.x;
y = cos(x);
plot(handles.show, x, y);
grid on;
function radiobutton3_Callback(hObject, eventdata, handles)
set(handles.radiobutton1,'value',0);
set(handles.radiobutton2,'value',0);
set(handles.radiobutton3,'value',1);
set(handles.text1,'String','Sa(x)');
x = handles.x;
y = sin(x)./x;
plot(handles.show, x, y);
grid on;
function pushbutton1_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)
close;
% --- Executes during object creation, after setting all properties.
function show_CreateFcn(hObject, eventdata, handles)
% hObject handle to axes2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: place code in OpeningFcn to populate axes2
% --- Executes during object creation, after setting all properties.
function figure1_CreateFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called