MATLAB对象数组

对象数组

  • 同一个对象可以数组串联起来
b1 = Square();
b2 = Square();
b3 = Square();
objArray = [b1,b2,b3];
  • 当对象很多时,以上方法会很麻烦。加入我们要构造 10 个对象,可以用一下方式
obj.Array(1,10) = Square(5);
  • 这样必须要求 Square 有不带参数的默认构造函数,因为前九个空缺的位置会自动调用默认构造函数

对象元胞数组

  • 上述普通数组中只能放同一种类型的对象,如果要将 Rectangle 和 Circle 类放在同一个数组中,则需要放在元胞数组中。
o1 = Square();
o2 = Circle();
oCell = { o1,o2};

对象查询

  • 可以用 findobj 函数查询符合要求的对象
  • A = findobj(参数),其中参数可以如下所示
参数名称说明
(H)返回 H 中列出的对象及其所有子级
(H,property,value,…,property,value)查找将指定属性设置为指定值的 handle 对象
(H,’-not’,property,value)查找其指定的属性不等于 value 的对象。
(H,’-regexp’,property,value)将 value 参数的内容视为正则表达式。
(H,property,value,’-logicaloperator’,property,value)支持的逻辑运算符包括’or’,‘and’,‘xor’
(H,’-function’,fh)对 H 中的对象调用函数句柄 fh,并返回此函数对其返回 true 的对象。
(H,’-function’,property,fh)对 H 中对象的指定属性值调用函数句柄 fh,并返回此函数对其返回 true 的对象。此函数必须返回标量逻辑值。
(H,’-class’,class)查找属于指定类的所有对象。
(H,’-isa’,class)查找属于指定类的所有对象
(H,’-property’,property)查找 H 中具有给定属性的所有对象。
(H,’-method’,methodname)查找具有指定的方法名称的对象。
(H,’-event’,eventname)查找具有指定事件名称的对象。
(H,’-depth’,d,___)指定要搜索 H 中对象下面的实例层次结构中的多少个级别。

实例

classdef PhoneBook < handle
	properties
		name
		number
	end
	methods
		function
			o.name = n;
			o.number = p;
		end
	end
end

PBook = [PhoneBook('Jack',1001),
		phoneBook('Loren',1002),
		phoneBook('Doug',1002)];
  • 寻找 name 为 Jack 的对象
o = findobj(PBook,'name','Jack');
  • 寻找号码为 1002 的对象,由于有两个满足,返回 1 × 2 对象数组
o = findobj(PBook,'number',1002);
  • 寻找 name 为 Loren 电话为 1002 的对象
o = findobj(PBook,'name','Loren','-and','number',1002);
    原文作者:脱碳甲醛
    原文地址: https://blog.csdn.net/qq_43575267/article/details/94389206
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞