1

我有一个虚拟变量矩阵,其中每一行都是 0,除了一个 1 表示该样本是哪个类的成员。例如[1 0 0; 0 0 1]表示第一个样本来自第 1 类,第二个来自第 3 类。我想要一个返回[1; 3].

该功能dummyvar与我想要的相反。是否有不需要 for 循环的优雅解决方案?

4

1 回答 1

3

您可以使用该find命令。

dummy = [1 0 0; 0 0 1];
[idx,~] = find(dummy')
idx =
     1
     3

编辑:为了保持更复杂假人的正确顺序,我们必须获取转置的行索引,而不是更直观的数组列索引。感谢@woodchips 发现了这一点!

于 2012-08-16T01:03:22.070 回答