如何在Matlab中预先分配结构向量

时间:2018-03-06 18:32:24

标签: matlab data-structures pre-allocation

在matlab中,函数struct允许预分配像这样的结构

S = struct(field1,{},field2,{},...,fieldN,{})

但是我需要S成为一个结构的向量,让我们说长度为100,我不知道该怎么做。我想这样做,以便以后我可以分配

S(60).field1=1234;

没有让S根据作业改变大小。

1 个答案:

答案 0 :(得分:2)

您必须通过在创建结构期间为每个字段指定的值的大小来指定S的大小。在这种情况下,以下行将执行技巧

S = struct(field1,cell(1,100),field2,cell(1,100),...,fieldN,cell(1,100));

正如Cris Luengo在评论中指出的那样,除了一个字段之外,你还可以使用标量。因此,以下行将具有完全相同的结果

S = struct(field1,cell(1,100),field2,[],...,fieldN,[]);