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

A. *_*sey 8 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;
Run Code Online (Sandbox Code Playgroud)

现在假设我有一些条件,并且让我想要从structure(2)(结构数组中的任何和所有条目)中删除所有内容.有什么好办法呢?

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

Sam*_*mal 12

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

i = 3
structure(i) = [];
Run Code Online (Sandbox Code Playgroud)

这将删除索引处的元素3.

例:

st.name = 'text';
st.id = 1524;
arrayOfSt = [st st st st st];
Run Code Online (Sandbox Code Playgroud)

现在:

arrayOfSt = 

    1x5 struct array with fields:
        name
        id
Run Code Online (Sandbox Code Playgroud)

如果我们执行:

arrayOfSt(2) = [];
Run Code Online (Sandbox Code Playgroud)

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

arrayOfSt = 

    1x4 struct array with fields:
        name
        id
Run Code Online (Sandbox Code Playgroud)

试试吧 !