来源:https://ww2.mathworks.cn/help/matlab/ref/set.html?searchHighlight=set&s_tid=doc_srchtitle
set
设置图形对象属性
语法
set(H,Name,Value)
set(H,NameArray,ValueArray)
set(H,S)
s = set(H)
values = set(H,Name)
说明
注意
不要对 Java 对象使用 set
函数,因为这会导致内存泄漏。有关详细信息,请参阅Access Public and Private Data。
set(H,Name,Value)
为 H
标识的对象指定其 Name
属性的值。使用时须用单引号将属性名引起来,例如,set(H,'Color','red')
。如果 H
是对象的向量,则 set
会为所有对象设置属性。如果 H
为空(即 []
),set
不执行任何操作,但不返回错误或警告。
set(H,NameArray,ValueArray)
使用元胞数组 NameArray
和 ValueArray
指定多个属性值。要为 m
个图形对象中的每个图形对象设置 n
个属性值,请将 ValueArray
指定为 m
×n
的元胞数组,其中 m = length(H)
,而 n
等于 NameArray
中包含的属性名的数量。
set(H,S)
使用 S
指定多个属性值,其中 S
是一个结构体,其字段名称是对象属性名称,字段值是对应的属性值。MATLAB 会忽略空结构体。
s = set(H)
返回 H
标识的对象的、可由用户设置的属性及其可能的值。s
是一个字段名称是对象属性名称且字段值是对应属性的可能值的结构体。如果您不指定输出参数,MATLAB 软件会在屏幕上显示该信息。H
必须为单个对象。
values = set(H,Name)
返回指定属性的可能值。如果可能的值为字符向量,则 set
会在元胞数组 values
的元胞中返回每个值。对于其他属性而言,set
会返回一个指示 Name
没有一组固定属性值的语句。如果您不指定输出参数,MATLAB 会在屏幕上显示该信息。H
必须为单个对象。
示例
更改特定线条的颜色
绘制一个线条并以 p
的形式返回图形线条对象。将行的 Color
属性设置为 'red'
。
p = plot(1:10);
set(p,'Color','red')
更改多个线条的颜色
使用随机数据创建一个包含四个线条的图形,并将这四个线条对象返回至 P
。将所有线条的 Color
属性设置为 'red'
。
P = plot(rand(4));
set(P,'Color','red')
为多个线条的线型设置为不同的值
将四个图形线条对象的 LineStyle
属性值分别设为不同的值。转置元胞数组值,使其拥有合适的形状。
P = plot(rand(4));
NameArray = {'LineStyle'};
ValueArray = {'-','--',':','-.'}';
set(P,NameArray,ValueArray)
为多个对象的多个属性设置不同值
将三个不同针状序列对象的 Marker
和 Tag
属性设置为不同值。值元胞数组的每一行对应于 h
中的一个对象且包含两个值,一个对应于 Marker
属性,一个对应于 Tag
属性。
x = 0:30;
y = [1.5*cos(x); 4*exp(-.1*x).*cos(x); exp(.05*x).*cos(x)]';
S = stem(x,y);
NameArray = {'Marker','Tag'};
ValueArray = {'o','Decaying Exponential';...
'square','Growing Exponential';...
'*','Steady State'};
set(S,NameArray,ValueArray)
提示
可以在一次 set
调用中使用属性名称/属性值对组、结构体数组和元胞数组的任意组合。
设置属性单位
请注意,如果在一次函数调用中同时设置 FontSize
和 FontUnits
属性,必须先设置 FontUnits
属性以使 MATLAB 软件能够正确地解释指定的 FontSize
。这也适用于图窗和坐标区的单位 - 始终先设置 Units
属性,然后再设置希望以这些单位解释其值的属性。例如,
f = figure('Units','characters','Position',[30 30 120 35]);