主要内容

访问属性值

对象属性和点符号

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

h=绘图(1:10);

h指数值1至10图表中绘制的线。

点符号语法使用对象变量和用点连接的区分大小写的属性名()以形成对象点属性名表示法:

object.PropertyName

如果对象变量是非标量,则使用索引来引用单个对象:

对象(n).PropertyName

标量对象变量

如果h这条线是由情节函数表达式h、 颜色这条直线的值是多少颜色财产:

h、 颜色
ans=0.4470 0.7410

如果你把颜色值赋给一个变量:

c = h.Color;

变量c是双人房。

名称大小字节类c 1x3 24双h 1x1 112 matlab.graphics.chart.primitive.Line

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

h、 颜色=[01];

在表达式中使用点表示法属性引用:

平均值=平均值(h.YData);

或更改属性值:

h.LineWidth = h.LineWidth + 0.5;

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

h、 Annotation.LegendInformation.IconDisplayStyle
ans=on

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

甘氨胆酸ax =;ax.Title.FontWeight =“正常”

Nonscalar对象变量

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

y=兰德(5);h=曲线图(y);大小(h)
ans=5.1

中表示第一列的行y使用数组索引:

h(1)。线型=“——”

使用函数设置线型数组中的所有行:

设置(h,“线条样式”“——”

将数据附加到属性值

使用点表示法,您可以使用“end”索引将数据附加到包含数据数组的属性,例如lineXDataYData. 例如,此代码更新该行XDataYData在使用调用进行渲染之前,必须确保线的x和y数据的大小相同drawnow还是回到MATLAB®提示。

h=绘图(1:10);k = 1:5 h.XData(end + 1) = h.XData(end) + k;h.YData(end + 1) = h.YData(end) + k;drawnow结束

图形对象变量是句柄

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

复制对象变量

例如,创建具有一条直线的图形:

h=绘图(1:10);

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

h2=h;h2.Color=[1,0,0]

分配对象变量hh2创建句柄的副本,但不创建变量所引用的对象。价值颜色从变量访问的属性h与从变量中访问的相同h2

h、 颜色
Ans = 10 0

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

删除对象变量

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

Name Size Bytes Class h 1x1 112 matlab.graphics.chart.primitiv . line h2 1x1 112 matlab.graphics.chart.primitiv . line

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

关闭gcf

line对象不再存在,但指向line的对象变量仍然存在:

Name Size Bytes Class h 1x1 112 matlab.graphics.chart.primitiv . line h2 1x1 112 matlab.graphics.chart.primitiv . line

然而,对象变量不再有效:

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

若要删除无效的对象变量,请使用清楚的

清楚的hh2

清单对象属性

要查看对象包含哪些属性,请使用收到功能:

得到(h)

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

AlignVertexCenter:'off'注释:[1x1 matlab.graphics.eventdata.Annotation]被删除:'off'BusyAction:'queue'ButtonDownFcn:'Children:[]剪辑:'on'颜色:[0.4470 0.7410]…线型:'-'线宽:0.5000标记:'none'。。。

属性的枚举值集可以查看属性的值功能:

设置(h,“线条样式”
“-”--“没有”

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

设置(h)

使用set和get修改属性

属性也可以访问和修改属性收到功能。

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

集(对象,'PropertyName,NewPropertyValue)

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

returned_value = (对象,'PropertyName');

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

多对象/属性操作

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

y=兰德(5);h=曲线图(y);

将所有的行设置为红色:

设置(h,“颜色”“红色”

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

view1.CameraViewAngleMode='manual';view1.DataAspectRatio=[1];view1.Projection='Perspective';

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

集合(gca,视图1)

查询多个属性

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

camModes = {“CameraPositionMode”“CameraTargetMode”...“CameraUpVectorMode”“CameraViewAngleMode”};

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

camModes get (gca)
Ans = 'auto' 'auto' 'auto'