我在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 = [];),但这不会删除它们,只会使它们为空。我实际上如何将它们从结构数组中完全删除?有办法吗?

最佳答案

如果要删除索引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

尝试一下 !

关于matlab - 在Matlab中从结构数组中删除项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13698895/

10-11 17:32