已经设置了一个double的数组,如何初始化一个对象数组?

问题描述 投票:0回答:1

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

particles(2, 1) = Particle();

但这不工作,如果 particles 之前已经被设置为类似于一个双数组的东西,或者可能比预期的大小要大(并且不会因为这一行而缩小,我想只有受影响的行会被改变)。有没有办法取消设置变量,重新初始化我的数组?

我得到的错误是

在将Particle转换为double时发生以下错误。 从Particle转换为double是不可能的。

在main(第4行)中出错,particle(2, 1) = Particle()。

arrays matlab
1个回答
1
投票

有各种可能的解决方案。要清除一个变量,使用 clear:

clear particles
particles(2, 1) = Particle;

(注意,在调用一个没有参数的函数时,不需要加上空括号。)

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

particles = repmat(Particle,2,1);

这条语句只有在你没有重载连接操作符的情况下才有效。

© www.soinside.com 2019 - 2024. All rights reserved.