2013-01-15 3 views

답변

6

이 :

x(29).id = []; 
x(29).value = []; 

당신이

[x.value] = deal(nan); 

처럼 모든 .id 필드의 값을 설정할 수 있습니다 특정 값의 하위 집합 만 설정하려면 할당 할 값의 마스크를 정의한 다음 지정 문에서 사용합니다.

@Pursuit으로
maskEmptyId = arrayfun( @(a)isempty(a.id), x ); 
[x(maskEmptyId).id] = deal(nan); 
+1

또한 하나의 라이너로 작동합니다. [x (arrayfun (@) isempty (a.id), x)). id] = deal (nan); – Dennis

0

그러나, 당신은 또한 다른 접근 방식에 관심이있을 수 NaN을

와 빈 필드를 대체 할 수있는 좋은 방법이 설명했다.

뒤늦은 지혜로 교체하는 대신 빈 곳이 처음부터 발생하는 것을 방지 할 수 있습니다. 아무 것도 할당되지 않았으므로 비어 있다고 가정하면 NaN으로 구조체를 간단하게 초기화 할 수 있습니다. 당신이 NaN으로 값 필드를 초기화 할 structArray 아무것도를 할당하지만, 여전히 비어있는 ID를 초기화하기 전에이 호출

structArray = struct ('id',[],'value',NaN) 

: 예를 들어

.

관련 문제