我有一个非递减数据的向量。以下是一个示例:
1
1
1
2
2
2
2
2
2
2
2
3
3
4
4
6
显然有重复的数字和丢失的数字。我可以使用unique
删除重复项,因此我的唯一值是:uniqueVals = unique(sortedData);
到现在为止还好。现在,我想更改数据,以便将sortedData
中的值替换为它们在uniqueVals
中的索引号。例如,uniqueVals
前5个元素将是1,2,3,4,6
,索引为1,2,3,4,5
。我想更改sortedData
,使1Map到1,2Map到2,3Map到3,4Map到4,6Map到5,依此类推。
我知道我可以创建一个“map”对象,但这似乎只是用来将uniqueVals
Map到它的索引。如何应用该Map以更改sortedData
中的条目?
我不需要这是一个特别快的操作。sortedData
只包含几十万行,并且只需要执行一次。
2条答案
按热度按时间rt4zxlrg1#
您可以使用unique的第三个输出
您的产出=
omhiaaxx2#
您还可以使用
g = findgroups(sortedData);
,它将为您提供组索引,其中每个唯一值有一个组。它的第二个输出告诉您值本身