我在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 = [];
),但这不会删除它们,只会使它们为空。我如何从结构数组中完全删除它们?有办法吗?
答案 0 :(得分: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
试试吧!