สร้างเมทริกซ์จากดัชนีอาเรย์

นี่อาจจะง่ายมาก แต่ฉันมองไม่เห็น มีวิธีใดบ้างที่จะสร้างเมทริกซ์ B (ด้านล่าง) โดยไม่ต้องแจกแจง A(i) ทั้งหมด?

A = [0 0 1 2 0 1];
>> B = [A == A(1);A == A(2);A == A(3);A == A(4);A == A(5);A == A(6)]

B =

 1     1     0     0     1     0
 1     1     0     0     1     0
 0     0     1     0     0     1
 0     0     0     1     0     0
 1     1     0     0     1     0
 0     0     1     0     0     1

person jonem    schedule 26.10.2016    source แหล่งที่มา


คำตอบ (1)


ใช้ bsxfun -

bsxfun(@eq,A(:),A)

ใน MATLAB 2016b เป็นต้นไปที่มีการออกอากาศอัตโนมัติ มันจะง่ายขึ้นในการ -

A(:)==A

ดูเหมือนมีศิลปะ ASCII อยู่นะ บางทีอาจจะเป็น B!

person Divakar    schedule 26.10.2016