在matlab中从结构数组中删除项

在matlab中从结构数组中删除项,matlab,structure,removeall,Matlab,Structure,Removeall,我在matlab中有一个非常大的结构数组。为了论证起见,为了简化情况,假设我有这样的东西: structure(1).name = 'a'; structure(2).name = 'b'; structure(3).name = 'c'; structure(1).returns = 1; structure(2).returns = 2; structure(3).returns = 3; 现在假设我遇到了一些条件,使我想删除结构(2)中的所有内容(结构数组中的所有条目)。这样做的好方法是

我在matlab中有一个非常大的结构数组。为了论证起见,为了简化情况,假设我有这样的东西:

structure(1).name = 'a';
structure(2).name = 'b';
structure(3).name = 'c';
structure(1).returns = 1;
structure(2).returns = 2;
structure(3).returns = 3;
现在假设我遇到了一些条件,使我想删除
结构(2)
中的所有内容(结构数组中的所有条目)。这样做的好方法是什么


我的解决方案是将相应的字段设置为
[]
(例如
结构(1).name=[];
),但这不会删除它们,只会使它们为空。如何从结构数组中完全删除它们?有什么方法吗?

如果要删除索引
i
中的元素,请执行以下操作:

i = 3
structure(i) = [];
这将删除索引
3
处的元素

例如:

st.name = 'text';
st.id = 1524;
arrayOfSt = [st st st st st];
现在:

如果我们执行:

arrayOfSt(2) = [];
然后,结构器数组的新值将为:

arrayOfSt = 

    1x4 struct array with fields:
        name
        id
试试看

arrayOfSt = 

    1x4 struct array with fields:
        name
        id