文档

访问属性值

对象属性和点表示法

图形化函数返回函数创建的一个或多个对象。例如:

h =情节(1:10);

H指图中从1到10的直线。

点符号是从R2014b开始访问对象属性的新语法。此语法使用对象变量和与点连接的区分大小写的属性名称(.)要形成对象点特性名称表示法,请执行以下操作:

对象。属性名

如果对象变量为非标度,请使用索引来引用单个对象:

对象(n)。属性名

标量对象变量

如果H是由情节函数,表达式h.Color是此特定行的颜色属性:

h.Color
Ans = 0 0.4470 0.7410

如果将颜色值指定给变量:

c=h.颜色;

的变量C是一个双。

Name Size Bytes Class c 1x3 24 double h 1x1 112

您可以更改此行的颜色具有赋值语句的属性:

h.Color = [0 0 1];

在表达式中使用点符号属性引用:

小气鬼=意味着(h.YData);

或更改属性值:

h、 线宽=高。线宽+0.5;

使用多个点引用属性中包含的其他对象:

h.Annotation.LegendInformation.IconDisplayStyle
ans =对

设置属性中包含的对象的属性:

ax=gca;ax.Title.FontWeight=“正常”;

非标度对象变量

图形函数可以返回对象数组。例如:

y=兰德(5);h=绘图(y);尺寸(h)
答案:1

访问表示中第一列的行Y使用数组索引:

h(1).线型='--';

使用设置函数设置线型在阵列中的所有行中:

集(h,“线型”,'--')

将数据追加到属性值

使用点表示法,您可以使用“end”索引将数据附加到包含数据数组的属性,例如line扩展属性伊达塔。例如,此代码更新行扩展属性伊达塔一起成长的线。在调用之前,必须确保行x和y数据的大小相同刷新屏幕或者回到MATLAB®促使

h =情节(1:10);对于k=1:5 h.XData(end+1)=h.XData(end)+k;h.YData(end+1)=h.YData(end)+k;drawnow结束

图形对象变量是句柄

图形函数返回的对象变量为处理.Handles是对实际对象的引用。作为句柄的对象变量在复制和删除对象时会以特定的方式运行。

复制对象变量

例如,创建一个只有一行的图形:

h =情节(1:10);

现在,将对象变量复制到另一个变量,并使用新的对象变量设置属性值:

h2 = h;h2.颜色=[1,0,0]

分配对象变量H创建句柄的副本,但不创建变量引用的对象。价值颜色从变量访问的属性H与从变量访问的相同吗.

h.Color
ans=1 0 0

H引用同一对象。复制句柄对象变量不会复制该对象。

删除对象变量

现在工作区中有两个对象变量引用同一行。

名称大小字节类h 1x1 112 matlab.graphics.chart.primitive.Line h2 1x1 112 matlab.graphics.chart.primitive.Line

现在关闭包含折线图的图形:

关闭gcf

线条对象不再存在,但引用线条的对象变量仍然存在:

名称大小字节类h 1x1 112 matlab.graphics.chart.primitive.Line h2 1x1 112 matlab.graphics.chart.primitive.Line

但是,对象变量不再有效:

h.Color
无效或已删除的对象。
h2.颜色=“蓝”
无效或已删除的对象。

要删除无效的对象变量,请使用清晰的:

清晰的H

列出对象属性

要查看对象包含的属性,请使用得到功能:

获取(h)

MATLAB返回对象属性及其当前值的列表:

AlignVertexCenters: 'off'注释:[1x1 matlab.graphics.eventdata。注释]被删除:'off'忙碌动作:'queue' ButtonDownFcn: " Children: [] Clipping: 'on' Color:[0 0.4470 0.7410]…LineStyle: '-' LineWidth: 0.5000 Marker: 'none'…

您可以使用设置功能:

集(h,“线型”)
'-' '——' ':' -。' '没有'

要显示所有可设置的属性,包括具有枚举值集的属性的可能值,请使用设置使用对象变量:

集(h)

使用set和get修改属性

还可以使用访问和修改属性设置得到功能。

在现有对象上设置属性值的基本语法是:

设置(对象,'属性名”,NewPropertyValue)

要查询特定对象属性的当前值,请使用以下形式的语句:

返回的值=get(对象,'属性名”);

属性名称始终是字符向量。可以使用单引号或作为字符向量的变量。属性值取决于特定属性。

多对象/属性操作

如果object参数是一个数组,MATLAB会在所有标识的对象上设置指定的值。例如:

y =兰德(5);h =情节(y);

将所有行设置为红色:

集(h,“颜色”,“红色”)

要在多个对象上设置相同的属性,请使用结构或单元格数组指定属性名称和属性值。例如,定义结构以适当设置轴属性以显示特定图形:

view1。CameraViewAngleMode =“手册”;view1。dataspectratio = [1 1 1];view1。投影=“视角”;

要在当前轴上设置这些值,输入:

view1集(gca)

查询多个属性

您可以定义属性名称的单元格数组,并使用它获取这些属性的值。例如,假设你想查询坐标轴“相机模式”属性的值。首先,定义单元格数组:

camModes={“CameraPositionMode”,“CameraTargetMode”,...“CameraupVector模式”,“CameraveAngleMode”};

将此单元格数组用作参数以获取这些属性的当前值:

get(gca、camModes)
ans='auto''auto''auto''auto'
这个话题有用吗?