matlab的组织构架其实和python是类似的,全都是基于对象的。
比如平时画图plot函数,画出的一个figure,就是一个Figure对象。每个对象都有自己的属性,通过get函数获取对象属性,set函数来修改对象属性。
gcf 返回当前Figure 对象的句柄值
gca 返回当前axes 对象的句柄值
gco 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure 的CurrentObject属性中。
下面做一个示例,纯粹手动写一个figure,sin函数,曲线每隔1s变一次颜色:
h = figure('Units', 'Normalized', ...
'Position', [0.2 0.2 0.2 0.2],...
'Menu', 'none');
ha = axes('Parent',h, 'Units', 'Normalized', ...
'Position', [0.1 0.1 0.85 0.85]);
hl = line('Parent', ha, 'XData', [0:0.01:6], 'YData', sin([0:0.01:6]), 'Color', 'r');
cstring = 'gbkmy';
for k = 1:5
set(hl, 'Color', cstring(k));
pause(1);
end
哈哈,第一次录制gif格式动图,虽然csdn上显示会出错,但是还是贴上啦啦啦
下面是GUI常用属性
示例2:
hf = figure(...
'Units', 'Normalized', ...
'Menu', 'none',...
'Color', 'w',... %Color指背景颜色,w是白色,平时划线的时候不用白色,所以不熟
'Position', [0.1 0.1 0.4 0.4]);
ha = axes(...
'Parent',hf,...
'Units', 'Normalized', ...
'Position', [0.1 0.1 0.6 0.8], ...
'NextPlot', 'Add', ... %就是hold on命令
'Box', 'on'); %加上外框
hb1 = uicontrol(...
'Style', 'pushbutton',...
'Callback', 'try, delete(allchild(ha)); end', ...
'String', 'clear', ...
'Units', 'Normalized',...
'Position', [0.78 0.25 0.15 0.1]);
hb2 = uicontrol(...
'Style', 'pushbutton',...
'Callback', 'plot(sin([0: 0.01: 10]));', ...
'String', 'sin', ...
'Units', 'Normalized',...
'Position', [0.78 0.45 0.15 0.1]);
hb3 = uicontrol(...
'Style', 'pushbutton',...
'Callback', 'plot(cos([0: 0.01: 10]));', ...
'String', 'cos', ...
'Units', 'Normalized',...
'Position', [0.78 0.65 0.15 0.1]);
总结:
matlab的GUI界面编辑比较简单,控件的定义使用只是更改类的属性即可。
学习链接
matlab的GUI的学习来源于bilibili网站的课程,感谢up主的分享,跟着up主一起徒手写GUI吧~
链接如下:
https://www.bilibili.com/video/BV1Sx411G7mT?from=search&seid=13985230084143289276