假设我有一个2乘5的矩阵:
d1= 3 3 1 1 2
4 4 2 3 4
并且有一个4乘5的零矩阵:
z1= 0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
d1的每一列显示z1中相应列中1的位置。具体来说,我希望得到一个结果:
r1= 0 0 1 1 0
0 0 1 0 1
1 1 0 1 0
1 1 0 0 1
我正在寻找一种从d1和z1获得r1的有效方法。
答案 0 :(得分:3)
将d1
转换为线性索引,并使用它们来索引z1
:
% Prior to R2016b:
I = bsxfun(@plus, d1, (0:size(d1,2)-1) * size(z1,1));
% On or after R2016b:
I = d1 + (0:size(d1,2)-1) * size(z1,1));
% Index using the linearized indices
z1(I) = 1