9 MATLAB_GUI_菜单控件(menu)的基本用法


  注:该笔记是学习b站上 MATLAB GUI教学视频而记录的笔记,笔记来源于本人。若有侵权,请联系本人删除,谢谢。若有错误,欢迎在评论区里指出。

一、实例效果

  如图所示,菜单栏中有一个绘图的选项,点开以后,可选择绘制正弦曲线或余弦曲线。然后在绘制的图像中,可以选择曲线的颜色和线宽。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、步骤

  1.先创建一个空的GUI。

在这里插入图片描述

  2.建立需要的菜单栏。

在这里插入图片描述

  新建一个菜单。
在这里插入图片描述
  再建两个子菜单。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  保存并运行一下,看看效果。
在这里插入图片描述
在这里插入图片描述

  3.创建一个坐标系。

在这里插入图片描述

  4.进入菜单栏中,编辑菜单的回调函数。

  4.1编辑子菜单里的“正弦曲线”的回调函数。

在这里插入图片描述
  函数代码如下,解释请参考注释:

% --------------------------------------------------------------------
function sinx_Callback(hObject, eventdata, handles)
% hObject    handle to sinx (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
x = 0:0.01:2*pi; % 横坐标的范围
y = sin(x); % 正弦函数
axes(handles.axes1); % 将界面中的坐标系置为当前
h = plot(x,y); % 将绘制出来的曲线的句柄给h
handles.h = h; % 将曲线句柄h放到结构体handles中
guidata(hObject,handles); % 将曲线句柄h放到结构体handles后,需要对结构体handles进行更新

在这里插入图片描述

  4.2编辑子菜单里的“余弦曲线”的回调函数。

在这里插入图片描述
  函数代码如下,解释请参考注释:

% --------------------------------------------------------------------
function cosx_Callback(hObject, eventdata, handles)
% hObject    handle to cosx (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
x = 0:0.01:2*pi; % 横坐标的范围
y = cos(x); % 正弦函数
axes(handles.axes1); % 将界面中的坐标系置为当前
h = plot(x,y); % 将绘制出来的曲线的句柄给h
handles.h = h; % 将曲线句柄h放到结构体handles中
guidata(hObject,handles); % 将曲线句柄h放到结构体handles后,需要对结构体handles进行更新

在这里插入图片描述

  5.保存,运行程序,查看前面4步的效果。

在这里插入图片描述
在这里插入图片描述

  6.新建一个弹出菜单,用来设置曲线的颜色与线宽。

在这里插入图片描述
  注:上图标记里的line没保存上,后面有一步我改正了过来,只是后面有几张截图此处没改过来而已。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  7.编写弹出菜单里的回调函数。

  7.1 编写颜色的回调函数

在这里插入图片描述
  设置红色的代码:

% --------------------------------------------------------------------
function red_Callback(hObject, eventdata, handles)
% hObject    handle to red (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if isfield(handles, 'h')%if语句的作用:只有绘制曲线后,才能设置颜色
    set(handles.h,'color','r');%设置颜色为红色
end

在这里插入图片描述
在这里插入图片描述
  设置绿色的代码:

% --------------------------------------------------------------------
function green_Callback(hObject, eventdata, handles)
% hObject    handle to green (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if isfield(handles, 'h')%if语句的作用:只有绘制曲线后,才能设置颜色
    set(handles.h,'color','g');%设置颜色为绿色
end

在这里插入图片描述
在这里插入图片描述
  设置黑色的代码:

% --------------------------------------------------------------------
function black_Callback(hObject, eventdata, handles)
% hObject    handle to black (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if isfield(handles, 'h')%if语句的作用:只有绘制曲线后,才能设置颜色
    set(handles.h,'color','k');%设置颜色为黑色
end

在这里插入图片描述

  7.2 编写线宽的回调函数

在这里插入图片描述
  设置线宽1的代码:

% --------------------------------------------------------------------
function xiankuan_1_Callback(hObject, eventdata, handles)
% hObject    handle to xiankuan_1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if isfield(handles, 'h')%if语句的作用:只有绘制曲线后,才能设置线宽
    set(handles.h,'LineWidth',1);%设置线宽1为1
end

在这里插入图片描述
在这里插入图片描述
  设置线宽2的代码:

% --------------------------------------------------------------------
function xiankuan_2_Callback(hObject, eventdata, handles)
% hObject    handle to xiankuan_2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if isfield(handles, 'h')%if语句的作用:只有绘制曲线后,才能设置线宽
    set(handles.h,'LineWidth',2);%设置线宽2为2
end

在这里插入图片描述
在这里插入图片描述
  设置线宽3的代码:

% --------------------------------------------------------------------
function xiankuan_3_Callback(hObject, eventdata, handles)
% hObject    handle to xiankuan_3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
if isfield(handles, 'h')%if语句的作用:只有绘制曲线后,才能设置线宽
    set(handles.h,'LineWidth',3);%设置线宽3为3
end

在这里插入图片描述

  8.保存,运行程序,查看程序的效果。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知乎云烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值