首页 > 编程知识 正文

matlab中数组怎么表示,matlab定义一维数组

时间:2023-05-06 07:16:52 阅读:106291 作者:2612

您可能要创建“控制柄对象”(Shooters )数组并将其保存到另一个控制柄对象(Squardron )的属性中。 在我看来非常

similar problem discussion可能会帮助你。

简而言之,你在做什么可能不好看,但也许已经好了。

在Matlab中创建数组时,通常需要进行一些预分配以保留内存,从而大大提高性能。

通常,这种事

a=zeros (1,1000 );

for n=1:1000

a(n )=n;

结束

(这里a=1:1000; 会变得更好)

对于对象,预分配通过将其中一个对象分配给数组的最后一个字段来工作。 然后,Matlab调用无参数对象的构造函数,并在所创建对象(句柄)前面的其他字段中输入值。 因此,对象的预分配如下所示:

a (1,1000 )=对象构造器;

for n=1:1000

a(n )=对象构造器;

结束

或者干脆

for n=1000:-1:1

a(n )=对象构造器;

结束

确保可以在不使用参数的情况下调用Shooter,并且您应该能够执行以下操作:

fori shooter=obj.num _ shooters :-1:1

obj.shooterarray(ishooter )=shooter ) num_targets,time_steps;

结束

但是,事实证明,由于某种原因,将对象数组直接存储在另一个对象的属性中会导致非常差的性能。 ()在这种情况下,预分配数组可能没有效果。 因此,在这种情况下,使用辅助变量立即将完整数组分配给属性是提高性能的好主意。

我试试:

fori shooter=obj.num _ shooters :-1:1

a(ishooter )=shooter(num_targets,time_steps );

结束

obj.ShooterArray=a;

再次-有关详细信息,请参见this discussion

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。