目录
注:该笔记是学习b站上 MATLAB GUI教学视频而记录的笔记,笔记来源于本人。若有侵权,请联系本人删除,谢谢。若有错误,欢迎在评论区里指出。
一、实例效果
如图所示,本次的GUI由两部分组成,左边是按钮组,右边是坐标系。按钮组中有3个单选按钮,当点中不同的按钮时,坐标系会显示不同的函数曲线。
二、步骤
1.先创建一个空白的GUI。
2.创建一个按钮组(Button Group)控件。
3. 再拖到三个单选按钮(Radio Button)到按钮组中,并对齐。
对齐后的效果如下图:
4. 修改三个单选按钮的属性。
将下图这几个按钮调整下位置和大小,如后一张图所示。
5. 保存GUI界面,运行一下程序看看得到的按钮组。发现按钮组只能有一个按钮被选中,回忆上一节的几个按钮的效果,可以说明未放在按钮组的多个按钮可以同时被选中,而 !! 放在按钮组的按钮最多选中一个 !!。
6.创建一个坐标系。
然后将坐标系与按钮组对齐。
保存后,再运行一下看看效果。
7.定义按钮组的回调函数,用来实现相应的动作。
代码如下:
% --- Executes when selected object is changed in uibuttongroup1.
function uibuttongroup1_SelectionChangedFcn(hObject, eventdata, handles)
% hObject handle to the selected object in uibuttongroup1
% 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; % 自变量的范围
current_Obj = get(eventdata.NewValue,'Tag'); % 得到当前被选中的单选按钮(Radio Button)的Tag,赋值给current_Obj
axes(handles.axes1); %将GUI中的坐标系置为当前,让plot在该坐标系中进行绘画
switch current_Obj %判断current_Obj,即可知道具体是哪一个单选按钮被选中
case 'kj1'
y=sin(x);
plot(x,y);
case 'kj2'
y=cos(x);
plot(x,y);
case 'kj3'
y=sin(x)+cos(x);
plot(x,y);
end
结合下图以及代码中的注释可理解代码的含义。
8.保存,并运行程序,查看效果。