Matlab的GUI编程入门项目一:常用三角函数的绘制

Matlab入门一个星期啦,记录一下入门以来的第一个GUI(Graphical User Interface)的第一个例子;
首先,GUI编程在matlab中也是两种方式,一种是直接用代码控制各种控件和实现逻辑;另外一种,也是我们新手入门的捷径:通过GUIDE向导完成。这个类似于Android的Layout的实现方式。下面开始正题:
1,截面布局
新建一个GUI空白项目;
这里写图片描述

进入布局编辑器之后,根据程序目标设计各控件(力求简洁):

这里写图片描述

2.逻辑代码及回调函数的实现;
可以通过右键单击控件,View callbacks进入callbacks回调函数编写界面:
需要声明的是:matlab的回调函数和Android等其他编程语言一样,通过控件的唯一标识(tag)绑定回调函数,Android控件唯一标识为Id;
以下是我们主要的绘图函数回调的代码:通过对RadioButton的状态判断,执行绘图;

% --- Executes on button press in pushbutton_draw.
function pushbutton_draw_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton_draw (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
x0 = str2num(get(handles.editstart,'string'));
x1 = str2num(get(handles.editstep,'string'));
x2 = str2num(get(handles.editfinal,'string'));
x= [x0:x1:x2];
if get(handles.radiobuttonsin,'value')
        hline = plot(x,sin(x));

elseif get(handles.radiobuttoncos,'value')
        hline = plot(x,cos(x));
elseif get(handles.radiobuttontan,'value')
        hline = plot(x,tan(x));
elseif get(handles.radiobuttoncot,'value')
        hline = plot(x,cot(x));
end
handles.lines =hline;
guidata(hObject,handles);

这是主要代码块,其他的Menu Bar实现也是类似的方式;
最后程序的输出为:
sin:
这里写图片描述

菜单栏中实现线条颜色的改变,结果如下:
这里写图片描述

cos:
这里写图片描述

总结:通过老师的督促,学习进度很快!本实例自己完全手写,结果还是很满意满足的;但程序中依然有待改善的地方;比如:radiobutton的ButtnGroup中还是没有实现打包操作,单选按钮实际成了多选按钮;
加油!!改进!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章