MATLAB的GUI小试牛刀

要实现一个这样的功能:点击单选框选择输出的图像,并且text的字也就是标题能随着按钮的切换来改变,比如点击的是“正弦曲线”,那么此时“图像”变成了“sin(x)”,并且在坐标里也会显示出正弦波形。“EXIT”按钮实现的是关闭程序的功能。效果图如下。

  1. 首先打开GUI的界面,拖3个radiobutton、1个pushbutton、1个text、1个axes。
  2. 分别设置他们的属性,随你喜好。
  3. 分别对控件编译程序。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值