Удаление элементов из массива структуры в 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
попробуйте !