2013-12-08 6 views

답변

3
A = [ 1, 2, 4, 8]; 
B = false(1,A(end)); 
B(A) = true; 

반환 :

B = 

    1  1  0  1  0  0  0  1 

및 옵션 : B = double(B) 당신이 복식으로 필요합니다.

나 :

그러나
B = zeros(1,A(end)); 
B(A) = 1; 

.

+0

왜'numel (A)'로'B'를 초기화합니까? 주어진 예제에서, 요청 된 것이 아닌 1x4 벡터를 초기화 할 것입니다. 'B (A) = true' 또는'B (A) = 1'만으로 충분합니다. – carandraug

+0

@ carandraug :'numel (A)'은 말도 안되는 소리입니다. 하지만 다른 모든 값이'0' /'false'인지 확인하기 위해 초기화를 유지할 것입니다. – thewaywewalk

+0

다른 모든 값은 기본적으로 false 또는 0입니다. 걱정할 필요가 없습니다. 여전히'B'를 초기화하고 싶다면 (다른 인덱스에 할당하는 값은 ** 초기화입니다),'max (A (:))'를 사용하십시오. 잘못된 위치로 초기화하는 것은 할당이 크기 조정을 강제 할 것이기 때문에 사실 더 나빠집니다. – carandraug