我有一个将整数列表作为向量返回的例程。
那些整数来自序列号组;例如,它可能看起来像这样:
vector = 6 7 8 12 13 14 15 26 27 28 29 30 55 56
请注意,上面有四组数字(6-8、12-15、26-30 和 55-56)。我想做的是将最长 的数字“运行”转发到一个新向量。在这种情况下,那将是 26-30 次运行,所以我想生成:
newVector = 26 27 28 29 30
这个计算必须在各种向量上执行很多很多次,所以我做的越高效越好!任何智慧都将不胜感激。
最佳答案
你可以试试这个:
v = [ 6 7 8 12 13 14 15 26 27 28 29 30 55 56];
x = [0 cumsum(diff(v)~=1)];
v(x==mode(x))
这导致
ans =
26 27 28 29 30
关于matlab - 找到向量中最长的连续整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11433402/