假设我有一个a
有界整数数组(在本例中为 5):
a = [3 4 4 2 1 5 5];
我想将此整数数组转换为一个length(a) x 5
矩阵A
,其中每一行都是一个位数组,列中的 1 由以下整数索引a
:
A = [0 0 1 0 0;
0 0 0 1 0;
0 0 0 1 0;
0 1 0 0 0;
1 0 0 0 0;
0 0 0 0 1;
0 0 0 0 1];
这可以通过for
循环轻松完成:
n = length(a)
A = zeros(n, max(a(:)));
for k = 1 : n
A(k, a(k)) = 1;
end
我正在寻找一个不使用 for 循环的矢量化实现。