如何向结构数组添加新元素?我无法与空结构连接:

>> a=struct;
>> a.f1='hi'

a =

    f1: 'hi'

>> a.f2='bye'

a =

    f1: 'hi'
    f2: 'bye'

>> a=cat(1,a,struct)
Error using cat
Number of fields in structure arrays being concatenated do not match. Concatenation of structure arrays requires that these arrays have the same set of
fields.

那么有可能添加具有空字段的新元素吗?

更新

我发现如果我同时添加新字段,则可以添加新元素:
>> a=struct()

a =

struct with no fields.

>> a.f1='hi';
>> a.f2='bye';
>> a(end+1).iamexist=true

a =

1x2 struct array with fields:

    f1
    f2
    iamexist

令人难以置信的是,没有直接的方法!可能有一些冒号等效的结构吗?

最佳答案

如果您懒于再次键入字段,或者如果太多,那么这里是获取空字段结构的捷径

a.f1='hi'
a.f2='bye'

%assuming there is not yet a variable called EmptyStruct
EmptyStruct(2) = a;
EmptyStruct = EmptyStruct(1);

现在EmptyStruct是您想要的空结构。所以要添加新的
a(2) = EmptyStruct; %or cat(1, a, EmptyStruct) or [a, EmptyStruct] etc...



a(2)

ans =

    f1: []
    f2: []

10-02 07:08