Bangun matriks dari indeks array

Ini mungkin sangat sederhana tetapi saya tidak dapat melihatnya. Apakah ada cara untuk membuat matriks B (di bawah) tanpa menyebutkan semua 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 sumber


Jawaban (1)


Gunakan bsxfun -

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

Pada MATLAB 2016b dan seterusnya dengan penyiaran otomatis, akan disederhanakan untuk -

A(:)==A

Sepertinya ada seni ascii di sana, mungkin kalau itu B!

person Divakar    schedule 26.10.2016