2012-12-04 7 views
8

나는 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 = [];)으로 설정하는 것이 었습니다. 그러나이를 제거하지 않고 비워 두었습니다. 실제로 구조 배열에서 완전히 제거하려면 어떻게합니까? 방법이 있습니까?

i = 3 
structure(i) = []; 

을 그리고 그 인덱스 3에서 요소를 제거합니다 : 간단한

답변

12

는 다음을 수행 인덱스 i에서 요소를 삭제하고 싶은 경우.

예 : 지금

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 

사용해보기!

+0

완벽하니, 정말 고마워요. –