【问题标题】:Construct an array of objects in MATLAB在 MATLAB 中构造对象数组
【发布时间】:2015-07-17 13:58:24
【问题描述】:

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

除了循环的幼稚想法之外,我如何构造一个 house 类的对象数组?

【问题讨论】:

标签: arrays matlab


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2021-09-10
      • 2019-09-12
      相关资源
      最近更新 更多