在matlab中,函数struct允许预分配像这样的结构
S = struct(field1,{},field2,{},...,fieldN,{})
但是我需要S成为一个结构的向量,让我们说长度为100,我不知道该怎么做。我想这样做,以便以后我可以分配
S(60).field1=1234;
没有让S根据作业改变大小。
答案 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,[]);