当前位置: 首页 > news >正文

Day24_0.1基础学习MATLAB学习小技巧总结(24)——图形对象属性值的设置和查询

利用空闲时间把碎片化的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')


http://www.mrgr.cn/news/26183.html

相关文章:

  • 改进大语言模型的最全方法!
  • 钾盐矿开采与加工过程中的机电设备选型及管理指南
  • Redis 配置
  • python如何加速计算密集型任务2?
  • 深入解析代理模式:静态代理、JDK 动态代理和 CGLIB 的全方位对比!
  • 4.安卓逆向-常用数据结构java语言中的集合
  • 崩坏星穹铁道PC端2.5版本剧情、奖励攻略 用GameViewer远程帮手机减负 随时畅玩星铁PC端
  • SpringBoot之基础Web开发
  • 动态IP的最大更新频率
  • 9.12 TFTP通信
  • IO中断原理浅析
  • 大模型从失败中学习 —— 微调大模型以提升Agent性能
  • YOLOv5 Detect.py 改变检测框box线条的粗细,隐藏检测框的检测信息,只显示检测框box
  • 构建蛋白质复合体结构中所有链序列的同源性矩阵
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——12.二叉树(习题)
  • (不用互三)从Prompt到创造:解锁AI的无限潜能
  • 爱 音 乐
  • Java高级Day40-QQ项目全代码
  • 程序员转行方向推荐
  • Java 创建对象内存分析