我有以下向量:
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
一种方法是
Y = zeros(size(y, 1), num_labels);
for i = 1:m
Y(i, y(i)) = 1;
end
有没有更好的方法来做到这一点,也许在一个表达式中?
基本上,我需要的是生成一个带有 boolean predicate 的矩阵(i, j) => j == y(i)
。