从数组索引构造矩阵

时间:2016-10-26 19:46:51

标签: matlab matrix vectorization

这可能很简单,但我看不到它。有没有办法在不枚举所有A(i)的情况下构造矩阵B(下面)?

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

1 个答案:

答案 0 :(得分:3)

使用bsxfun -

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

在MATLAB 2016b以及自动广播之后,它将简化为 -

A(:)==A

在那里看起来像一些ascii艺术,可能是B