Удаление элементов из массива структуры в MATLAB

у меня очень большой массив структуры в 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 = [];), но это не удаляет их, это только делает они пустые. Как на самом деле удалить их полностью из массива structure? Есть ли способ?

1 ответов


просто, если вы хотите удалить элемент по индексу i сделать следующее:

i = 3
structure(i) = [];

и это удалит элемент в index 3.

пример:

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

теперь:

arrayOfSt = 

    1x5 struct array with fields:
        name
        id

если мы выполняем:

arrayOfSt(2) = [];

затем новое значение массива structers будет:

arrayOfSt = 

    1x4 struct array with fields:
        name
        id

попробуйте !