2013-12-08 268 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或零,您不必擔心它。如果你真的想初始化'B',我仍然認爲你不需要(對其他索引**的賦值是**初始化),使用'max(A(:))'。由於任務將強制調整大小,因此初始化到錯誤的地方實際上會更糟糕。 – carandraug