matlabGUI学习笔记3

对象的属性表示方法,修改方法以及多对象操作

上两篇讲到uicontrol的属性及简单的回调,我发现传输数据的方式或者说属性的修改,设置,传递方法太单一,于是就想还有哪些传递的方法,在多对象间如何传递。

对象属性和原点表示法

这个方法就是上两篇用的dot。这里详细看一下它在不同情况下的表示。

标量对象变量

object.PropertyName;该语法使用对象变量和区分大小写的属性名以圆点 (.) 相连,组成对象圆点名称表示法。

例如:

h = plot(1:10);%创建对象
h.Color%查询对象属性值
h.Color = [0 0 1];%设置对象属性值
meanY = mean(h.YData);%属性引用,作用是将Y轴数据求平均
h.LineWidth = h.LineWidth + 0.5;%这种更改也是可以的
h.Annotation.LegendInformation.IconDisplayStyle%使用多圆点表示包含的其他对象,也可以更改哦

非标量对象变量

图像函数返回对象数组

例如:

y = rand(5);
h = plot(y);
size(h)
h(1).LineStyle = '--';%数组圆括号指定单个对象和脚本没啥区别
set(h,'LineStyle','--')

将数据追加到属性值

通过圆点表示法,您可以使用 “end” 索引将数据追加到包含数据数组的属性,如线条 XData 和 YData。例如,这段代码同时更新 XData 和 YData,以延长线条。您必须确保线条的 x 和 y 数据的大小相同,然后才能通过调用 drawnow 进行渲染或返回 MATLAB提示符。

h = plot(1:10);
for k = 1:5
   h.XData(end + 1) = h.XData(end) + k;
   h.YData(end + 1) = h.YData(end) + k;
   drawnow
end

图形对象变量是句柄

图形函数返回的对象变量是句柄。句柄是对实际对象的引用。对象变量是在复制时以及删除对象时具有特殊行为的句柄。

复制对象变量不等同于复制对象,句柄只代表指向该对象。

删除对象变量 使用clear函数

列出对象属性 ,使用get函数,如:get(h);MATLAB 返回对象属性及其当前值列表;也可以使用set,如:set(h,'LineStyle'),查看具有一组枚举值的属性值。要显示所有可设置的属性用set(h)

使用set和get修改属性

设置现有对象属性值的基本语法是:
set(object,‘PropertyName’,NewPropertyValue);
要查询特定对象属性的当前值,使用以下形式的语句:
returned_value = get(object,‘PropertyName’);

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

多对象/属性操作

如果对象参数是一个数组,那么 MATLAB 对所有识别出的对象设置特定的值。例如:

y = rand(5);
h = plot(y);

要对多个对象设置相同属性,使用结构体或元胞数组指定属性名和属性值。例如,定义一个结构体,正确设置坐标区属性以显示特定图形:

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

要在当前坐标区设置这些值,输入:set(gca,view1)

您可以定义属性名元胞数组并用它获取那些属性值。例如,假设您想要查询坐标区的 “camera mode” 属性值。首先,定义元胞数组:

camModes = {‘CameraPositionMode’,‘CameraTargetMode’,…
‘CameraUpVectorMode’,‘CameraViewAngleMode’};

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

get(gca,camModes);

以上就是控件,对象间的信息传递了,但除了‘.’的方法外,还有其它方法,如利用tag(标记)来查找属性。这些在看到figure组件再说吧。目前感觉只不过是达到目的的不同手段吧,慢慢来不着急。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值