在MATLAB中构造一个对象数组

时间:2015-07-17 13:58:24

标签: arrays matlab

假设我在MATLAB中定义了一个类house

我怎样才能构建类house的对象数组,除了循环的天真想法?

2 个答案:

答案 0 :(得分:1)

您可以使用houseArray = repmat(house, numHouses, 1)创建house结构的列数组。如果需要n×m结构数组,请将1更改为其他内容。

答案 1 :(得分:0)

一种方法是创建类house的单个对象,然后使用repmat将该实例复制到更大数组的所有元素中。

另一种方法是通过将类house的对象分配给后面的元素来创建数组 - 例如通过说myhouses(2,3) = house。这与您说mynumbers(2,3) = 2的方式相同 - 您获得了一个数组[0,0,0;0,0,2]

当您使用该语法时,MATLAB需要创建一个默认值house(与填充数值数组的其他元素的方式相同,默认值为零)。为此,它使用零输入参数调用house的构造函数 - 因此您需要以这样的方式实现该构造函数:当使用零输入调用时,它会输出house的默认实例。

第三个选项是实现构造函数,使其可以接受指定输出数组大小的输入参数,然后直接输出具有该大小的对象数组。