在matlab中,我有一个名为标签的双数据类型变量,其维度为 1211 x 1 。
我想创建一个 IndicatorMatrix (6列),这样如果 Label 变量中的一行是 34 ,那么相应的行在 IndicatorMatrix 中应 0 0 1 1 0 0 。
我指的是指标矩阵的1 @ 3和第4列。
答案 0 :(得分:5)
让x
成为1211x1矩阵(Label),让im
(IndicatorMatrix)成为您想要创建的矩阵。做:
h = size(x,1);
im = [zeros(h, 2), repmat(x == 34, 1, 2), zeros(h, 2)];
这创建了一个矩阵,它是具有2列和高度h的零矩阵的水平连接,然后是x == 34(其中x为34,其他地方为零)的布尔矩阵重复2次水平和垂直,然后再一个零矩阵。
请注意,在您的情况下,我们可以将h替换为1211,但我尝试编写更多通用代码。