主要内容

复制对象

两种复制行为

有两种基本类型的MATLAB®对象——处理和价值观。

价值对象像MATLAB基本类型对复制操作。副本是独立的价值观。一个对象上执行的操作不会影响该对象的副本。

处理处理对象引用的变量。处理变量引用同一个对象的副本。您执行的操作的处理对象是可见的所有处理变量引用该对象。

处理对象副本

如果你在定义类和想支持处理对象副本,明白了金宝app为处理类实现复制

值对象复制行为

MATLAB数值变量值对象。例如,当你复制一个对该变量b,这两个变量是相互独立的。改变的价值一个不会改变的价值b:

= 8;b =一个;

现在重新分配一个b是不变的:

= 6;b
b = 8

清算一个不影响b:

清晰的一个b
b = 8

对象属性值

值存储为属性值的复制行为对象是一样的数值变量。例如,假设vobj1是一个与属性值对象一个:

vobj1。= 8;

如果你复制vobj1vobj2,然后改变的价值vobj1财产一个复制对象的属性的值,vobj2.a影响:

vobj2 = vobj1;vobj1。一个= 5; vobj2.a
ans = 8

处理对象复制行为

这是一个处理类HdClass定义了一个属性数据

classdefHdClass <处理属性数据结束方法函数obj = HdClass (val)如果输入参数个数> 0 obj。数据= val;结束结束结束结束

创建这个类的一个对象:

hobj1 = HdClass (8)

因为这句话不是分号终止,MATLAB显示的信息对象:

hobj1 = HdClass属性:数据:8

的变量hobj1是一个句柄引用对象创建。复制hobj1hobj2结果在另一个处理指的是相同的对象:

hobj2 = hobj1
hobj2 = HdClass属性:数据:8

因为句柄引用对象,复制句柄复制处理一个新的变量名称,但仍然处理指的是同一个对象。例如,考虑到hobj1是一个处理对象与属性数据:

hobj1.Data
ans = 8

变化的值hobj1数据复制对象的属性和值数据财产也在改变:

hobj1.Data= 5; hobj2.Data
ans = 5

因为hobj2hobj1处理同一个对象,改变复制,hobj2通过处理,也改变了数据访问hobj1:

hobj2.Data= 17; hobj1.Data
ans = 17

重新分配处理变量

重新分配一个句柄变量产生相同的结果重新分配任何MATLAB变量。当你创建一个对象,并将其分配给hobj1:

hobj1 = HdClass (3.14);

hobj1引用新对象,而不是同一对象以前(现在仍然引用的引用hobj2)。

清算处理变量

当你明确处理从工作区,MATLAB消除了变量,但不删除对象引用的其他处理。然而,如果没有一个对象的引用,MATLAB破坏对象。

鉴于hobj1hobj2都引用同一个对象,您可以明确处理而不影响对象:

hobj1.Data= 2^8; clear hobj1 hobj2
hobj2 = HdClass属性:数据:256

如果你都清楚hobj1hobj2,然后没有对对象的引用。MATLAB破坏对象,并释放该对象使用的内存。

删除处理对象

删除一个对象引用的任何数量的把手,使用删除。鉴于hobj1hobj2,都引用同一个对象,删除处理。MATLAB删除对象:

hobj1 = HdClass (8);hobj2 = hobj1;删除(hobj1) hobj2
删除HdClass hobj2 =处理

使用清晰的从工作区中删除变量。

修改对象

当你将对象传递给一个函数,MATLAB的副本对象传递到函数的工作区。如果函数修改对象,MATLAB只修改复制对象的函数空间。复制行为处理与价值之间的差异类是重要的在这种情况下:

  • 值对象,对象的函数必须返回修改后的副本。修改对象在调用者的工作区,分配输出一个变量同名的函数

  • 处理函数空间中的对象——复制指的是同一个对象。因此,函数没有返回修改后的副本。

测试处理类或价值

可以确定一个对象是一个处理对象,使用isa函数。如果obj是一个对象的类,该语句判断吗obj是一个处理:

isa (obj,“处理”)

例如,containers.Map类创建一个处理对象:

hobj = containers.Map ({“红袜队”,“洋基},{“波士顿”,“纽约”});isa (hobj“处理”)
ans = 1

hobj也是一个containers.Map对象:

isa (hobj containers.Map)
ans = 1

查询的类hobj表明这是一个containers.Map对象:

类(hobj)
ans = containers.Map

函数返回对象的特定类。

相关的话题