从另一个向量中获取有序整数向量
get ordered integer vector from another vector
我有一个向量:
v1 = [13 13 13 13 5 5 5 2 2 5 5];
并想创建另一个向量 v2
,这样如果 v1
中的元素与前一个元素相同,它会获得相同的有序(顺序)整数,例如:
v2 = [1 1 1 1 2 2 2 3 3 4 4];
将 形式化为(社区维基)答案,您可以这样做
cumsum([1, diff(v1)~=0]);
它使用 cumsum
对 true/false 数组进行 运行 求和,标识一个元素与前一个元素的不同之处,即值更改的位置为 1,否则为 0。
我有一个向量:
v1 = [13 13 13 13 5 5 5 2 2 5 5];
并想创建另一个向量 v2
,这样如果 v1
中的元素与前一个元素相同,它会获得相同的有序(顺序)整数,例如:
v2 = [1 1 1 1 2 2 2 3 3 4 4];
将
cumsum([1, diff(v1)~=0]);
它使用 cumsum
对 true/false 数组进行 运行 求和,标识一个元素与前一个元素的不同之处,即值更改的位置为 1,否则为 0。