matlab - 找到向量中最长的连续整数

标签 matlab vector

我有一个将整数列表作为向量返回的例程。

那些整数来自序列号组;例如,它可能看起来像这样:

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/

相关文章:

matlab - 如何在 Matlab 中为几个函数声明一个全局变量?

matlab - 在 Matlab 中克隆图形 - 具有属性和数据

c++ - 比较不同的 vector 迭代器并从第一个 vector 中删除元素

c++ - 二维 vector push_back

c++ - 以行和列的形式访问 vector<vector<char>> 元素

c++ - 访问 vector 字段的键 - 命名空间中的枚举类或枚举?

function - 使用 fminsearch 最大化函数

matlab将文件解析为元胞数组

r - 求两个向量的平均最大配对

file - Matlab:读取目录中的所有文件