利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。
参考书目:《MATLAB基础教程 (第三版) (薛山)》
之前的章节都是基础的数据运算用法,对于功课来说更加重要的内容是建模、绘图、观察数据趋势,接下来我会结合自己的使用经验,来为大家分享绘图、建模使用的小技巧。
在本章中的代码,会以资源的形式发在我的博客里供大家免费下载学习。
图形对象属性值的设置和查询
在MATLAB中,创建图形对象时,可以通过构造函数传递“属性名/属性值”对来设置对象的属性值(除只读属性外)。构造函数返回对象句柄,用户可以利用该句柄查询和修改属性值。使用set函数可以设置现有图形对象的属性,而get函数则用于获取属性值。此外,这两个函数还可以列出具有固定设置的属性的所有值。
1 属性值的设置
在MATLAB中,使用set函数可以用于设置对象的各项属性。
例:通过set函数将y轴置于坐标系的右侧:
t = 0:pi/20:2*pi;
z = sin(t);
plot(t,z)
set(gca,'YAxisLocation','right')
xlabel('t')
ylabel('z')
未使用set函数的图像:
使用set函数设置后的图像
通过set函数查看可设置的线型:
set(line,'LineStyle')
2 对象的默认属性值
在MATLAB中,所有对象属性都有系统默认值,即出厂设置。用户也可以自定义任何MATLAB对象的默认属性值。
2.1 默认属性值的搜索
MATLAB从当前对象开始搜索默认属性值,沿着对象的从属关系图向上查找,直到找到系统默认值或用户自定义值。在对象从属关系图中,越靠近根对象的默认值作用范围越广。例如,在根对象层次上为Line对象定义的默认值将适用于所有Line对象。如果在不同层次上定义同一属性的默认值,MATLAB会自动选择最底层的值作为最终属性值。需要注意的是,用户自定义的属性值仅影响该属性设置后创建的对象,之前的对象不受影响。
2.2 默认属性的设置
指定MATLAB对象的默认值,需要首先创建一个以Default开头的字符串,该字符串的中间部分为对象类型,末尾部分为属性的名。
例:设置多个层次对象的属性
t=0:pi/20:2*pi;
s = sin(t);
c = cos(t);
%设置坐标轴颜色属性的默认值
figh = figure('Position',[30 100 800 350],...
'DefaultAxesColor',[.8 .8 .8]);
axh1 = subplot(1,2,1); grid on
%在第一个轴上设置LineStyle属性的默认值
set(axh1,'DefaultLineLineStyle','-.')
line('XData',t,'YData',s)
line('XData',t,'YData',c)
text('Position',[3 .4],'String','Sine')
text('Position',[2 -.3],'String','Cosine',...
'HorizontalAlignment','right')
axh2 = subplot(1,2,2); grid on
%在第二个轴上设置文本旋转属性的默认值
set(axh2,'DefaultTextRotation',90)
line('XData',t,'YData',s)
line('XData',t,'YData',c)
text('Position',[3 .4],'String','Sine')
text('Position',[2 -.3],'String','Cosine',...
'HorizontalAlignment','right')
这段代码中,在一个图形窗口中创建了两个坐标系。设置整个图形窗口的默认坐标系的背景色为灰色,设置第一个坐标系的默认线型为点画线(-.),设置第二个坐标系的默认文本方向为旋转90度。运行该脚本,得到的结果如下图所示:
3 属性值的查询
利用get函数可以查询对象属性的当前值
例:查询当前图形窗口对象的颜色映射表的属性
get(gcf,'colormap')