从Matlab结构体数组中删除元素

8
我在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;

现在假设我有一些条件,使我想要从 structure(2) 中删除所有内容(结构数组中的任何和所有条目)。有什么好方法可以做到这一点吗?
我的解决方案是将相应的字段设置为[](例如structure(1).name = []),但这并不会将它们删除,而只是使它们为空。如何从结构数组中完全删除它们?有没有办法?
1个回答

12

如果你想删除索引为 i 的元素,做如下操作:

i = 3
structure(i) = [];

这将会删除索引为3的元素。

示例:

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

现在:

arrayOfSt = 

    1x5 struct array with fields:
        name
        id

如果我们执行:

arrayOfSt(2) = [];

那么结构体数组的新值将是:
arrayOfSt = 

    1x4 struct array with fields:
        name
        id

试一试!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接