1

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

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

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

S(60).field1=1234;

没有使 S 由于分配而改变大小。

4

1 回答 1

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,[]);
于 2018-03-06T18:53:08.920 回答