私は次のベクトルを持っています:
y = [1; 3; 2; 3; 1];
その値はすべて1
とn
(この場合は3
)の間にあり、さまざまなオプションを示します。
行が値に対応するサイズsize(y, 1)
xの行列を作成したいと思います。n
y
1 0 0 % because y(1) = 1
0 0 1 % because y(2) = 3
0 1 0 % because y(3) = 2
0 0 1
1 0 0
これを行う1つの方法は
Y = zeros(size(y, 1), num_labels);
for i = 1:m
Y(i, y(i)) = 1;
end
おそらく単一の式で、これを行うためのより良い方法はありますか?
基本的に、私が必要としているのは、ブール述語を使用して行列を生成すること(i, j) => j == y(i)
です。