我想将一个onehot数组转换为MATLAB中的整数值数组。给定:
Y = 1 0 0 0 1 0 0 1 0
我想返回:
new_y = 1 2 2
回答:
你可以使用find
函数,并仅返回列索引,如下所示
Y = [1 0 0; 0 1 0; 0 1 0];[~, new_y] = find(Y); % 输出: [1; 2; 2] 是你的1所在的列索引
同样,如果你的输入是转置的,你可以返回行索引
[new_y, ~] = find(Y); % 输出: [1; 2; 3] 是你的1所在的行索引