访问属性值
对象属性和点符号
绘图函数返回由函数创建的一个或多个对象。例如:
H =图(1:10);
h
指在数值1到10的图形中所画的直线。
的点符号语法使用对象变量和区分大小写的属性名,并用点(。
),形成对象点属性名表示法:
对象。PropertyName
如果对象变量是非标量,则使用索引来引用单个对象:
对象(n)。PropertyName
标量对象变量
如果h
创建的线是情节
函数,表达式h.Color
这一行的值是颜色
属性:
h.Color
Ans = 0 0.4470 0.7410
如果你将颜色值赋给一个变量:
c = h.颜色;
的变量c
是双数。
谁
名称大小字节类c 1x3 24 double h 1x1 112 matlab.graphics.chart.primitive.Line
你可以改变这条线的值颜色
属性的赋值语句:
h.Color = [0 0 1];
在表达式中使用点符号属性引用:
meanY = mean(h.YData);
或更改属性值:
h.LineWidth = h.LineWidth + 0.5;
用多个点引用属性中包含的其他对象:
h.Annotation.LegendInformation.IconDisplayStyle
Ans = on
设置properties中包含的对象的属性:
Ax = gca;ax.Title.FontWeight =“正常”;
非标量对象变量
图形函数可以返回一个对象数组。例如:
Y = rand(5);H = plot(y);大小(h)
Ans = 5 1
中表示第一列的行y
使用数组索引:
h(1)。线型=“——”;
使用集
函数设置线型
在数组中的所有行中:
集(h,“线型”,“——”)
向属性值追加数据
使用点表示法,可以使用“结束”索引将数据附加到包含数据数组的属性,例如lineXData
和YData
。例如,这段代码更新了该行XData
和YData
一起成长的线。调用之前,必须确保行的x-和y-data的大小相同drawnow
或者回到MATLAB®提示。
H =图(1:10);为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]
给对象变量赋值h
来h2
创建句柄的副本,但不创建变量引用的对象。的值颜色
从变量访问的属性h
是否与从变量中访问的相同h2
。
h.Color
Ans = 1 0 0
h
和h2
引用同一个对象。复制句柄对象变量并不复制对象。
删除对象变量
现在工作区中有两个对象变量引用同一行。
谁
名称大小字节类h 1x1 112 matlab.graphics.chart.primitive.Line h2 1x1 112 matlab.graphics.chart.primitive.Line
现在关闭包含折线图的图形:
关闭gcf
line对象不再存在,但引用该行的对象变量仍然存在:
谁
名称大小字节类h 1x1 112 matlab.graphics.chart.primitive.Line h2 1x1 112 matlab.graphics.chart.primitive.Line
但是,对象变量不再有效:
h.Color
无效或已删除的对象。
h2。颜色=“蓝”
无效或已删除的对象。
若要删除无效的对象变量,请使用清晰的
:
清晰的hh2
列出对象属性
要查看对象包含的属性,请使用得到
功能:
得到(h)
MATLAB返回对象属性及其当前值的列表:
AlignVertexCenters: 'off'注释:[1x1 matlab.graphics.eventdata.]注释]BeingDeleted: 'off' BusyAction: 'queue' ButtonDownFcn: " Children: [] Clipping: 'on' Color:[0 0.4470 0.7410]…LineStyle: '-' LineWidth: 0.5000 Marker: 'none'…
属性的值具有可能值的枚举集集
功能:
集(h,“线型”)
'-' '——' ':' '-。' '没有'
若要显示所有可设置的属性,包括具有枚举值集的属性的可能值,请使用集
使用object变量:
集(h)
使用set和get修改属性
在现有对象上设置属性值的基本语法是:
集(对象,'PropertyName”,NewPropertyValue)
要查询特定对象属性的当前值,可以使用如下语句:
返回值= get(对象,'PropertyName');
属性名总是字符向量。您可以使用单引号或字符向量变量。属性值取决于特定的属性。
多对象/属性操作
如果object参数是一个数组,MATLAB将在所有标识的对象上设置指定的值。例如:
Y = rand(5);H = plot(y);
设置所有的行为红色:
集(h,“颜色”,“红色”)
若要在多个对象上设置相同的属性,请使用结构或单元格数组指定属性名称和属性值。例如,定义一个结构来适当地设置轴属性以显示特定的图形:
view1。CameraViewAngleMode = 'manual';view1。DataAspectRatio = [1 1 1];view1。投影= '透视';
要在当前轴上设置这些值,键入:
view1集(gca)
查询多个属性
您可以定义属性名的单元格数组,并使用它来获取这些属性的值。例如,假设您想要查询轴“camera mode”属性的值。首先,定义单元格数组:
camModes = {“CameraPositionMode”,“CameraTargetMode”,…“CameraUpVectorMode”,“CameraViewAngleMode”};
使用这个单元格数组作为参数来获取这些属性的当前值:
camModes get (gca)
Ans = 'auto' 'auto' 'auto' 'auto' 'auto'