基于另一个向量的相邻元素的重复序列号- matlab

uhry853o  于 2023-08-06  发布在  Matlab
关注(0)|答案(1)|浏览(132)
v = [1, 4, 7, 12, 16, 20];

字符串
我试图创建一个向量v2,其中每个数字出现的次数与v中两个相邻元素之间的元素数量相同。
例如,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]

eyh26e7m

eyh26e7m1#

您可以使用diffrepelem实现您正在寻找的功能:

d = diff(v);
out = repelem(1:numel(d), d);

字符串
diff给出了v中每对连续元素之间的值的数量,repelem按照第二个矩阵给出的次数重复矩阵的元素。
输出与OP中的相同,除了1仅重复3次,因为4-1=3。

相关问题