v = [1, 4, 7, 12, 16, 20];
字符串我试图创建一个向量v2,其中每个数字出现的次数与v中两个相邻元素之间的元素数量相同。例如,v中的前两个元素是1:4,因此它应该输出[1,1,1,1]。接下来的两个是4:7,所以它应该输出[2,2,2],等等。期望输出:
v2
v
1:4
[1,1,1,1]
4:7
[2,2,2]
v2 = [1,1,1,1, 2,2,2, 3,3,3,3,3, 4,4,4,4, 5,5,5,5]
型
eyh26e7m1#
您可以使用diff和repelem实现您正在寻找的功能:
diff
repelem
d = diff(v); out = repelem(1:numel(d), d);
字符串diff给出了v中每对连续元素之间的值的数量,repelem按照第二个矩阵给出的次数重复矩阵的元素。输出与OP中的相同,除了1仅重复3次,因为4-1=3。
1条答案
按热度按时间eyh26e7m1#
您可以使用
diff
和repelem
实现您正在寻找的功能:字符串
diff
给出了v
中每对连续元素之间的值的数量,repelem
按照第二个矩阵给出的次数重复矩阵的元素。输出与OP中的相同,除了1仅重复3次,因为4-1=3。