【问题标题】:How to initialize an array of objects when an array of double is already set?已设置双精度数组时如何初始化对象数组?
【发布时间】:2020-05-01 20:48:46
【问题描述】:

我想初始化一个粒子数组,其中 Particle 是我定义的一个类。我被告知 here 我应该这样做

particles(2, 1) = Particle();

但如果 particles 之前已设置为类似双精度数组,或者可能大于预期大小(并且不会随此行缩小,只会更改受影响的行),这将不起作用我认为)。有没有办法取消设置变量以重新初始化我的数组?

我得到的错误:

从 Particle 转换为 double 时出现以下错误: 无法从 Particle 转换为 double。

主(第 4 行)particle(2, 1) = Particle() 中的错误;

【问题讨论】:

    标签: arrays matlab


    【解决方案1】:

    有多种可能的解决方案。要清除变量,请使用clear

    clear particles
    particles(2, 1) = Particle;
    

    (请注意,无需添加空括号即可调用不带参数的函数。)

    但是,IMO 更好的解决方案是创建一个类的数组并将其分配给变量

    particles = repmat(Particle,2,1);
    

    此语句仅在您没有重载连接运算符时才有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      • 2020-04-21
      • 2016-03-11
      • 2018-06-22
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多