Matlab 查找串联运行序列向量中的第一个值

Matlab 查找串联运行序列向量中的第一个值,matlab,Matlab,给定一个向量 [1;2;3;5;6;7;10;11;12] 对于某些N,如何在每个运行序列中找到第一个值?这里,运行序列是由1分隔的整数序列,例如5;6.7。根据上述向量,我希望答案是: [1;5;10] 你可以用 diff(a)将为您提供所有元素之间的差异diff(a)>1将返回一个逻辑向量,指示哪些数字的差值大于1 [true;diff(a)>1]将在开头追加一个逻辑true,以确保包含第一个值 最后,a([true;diff(a)>1])将为您提供由逻辑向量映射的a值。您可以使用 di

给定一个向量

[1;2;3;5;6;7;10;11;12]
对于某些
N
,如何在每个运行序列中找到第一个值?这里,运行序列是由1分隔的整数序列,例如
5;6.7
。根据上述向量,我希望答案是:

[1;5;10]
你可以用

diff(a)
将为您提供所有元素之间的差异
diff(a)>1
将返回一个逻辑向量,指示哪些数字的差值大于
1

[true;diff(a)>1]
将在开头追加一个逻辑true,以确保包含第一个值

最后,
a([true;diff(a)>1])
将为您提供由逻辑向量映射的
a
值。

您可以使用

diff(a)
将为您提供所有元素之间的差异
diff(a)>1
将返回一个逻辑向量,指示哪些数字的差值大于
1

[true;diff(a)>1]
将在开头追加一个逻辑true,以确保包含第一个值

最后,
a([true;diff(a)>1])
将为您提供由逻辑向量映射的
a
的值

a = [1;2;3;5;6;7;10;11;12]
a([true; diff(a)>1])        %% or a(diff([-inf; a])>1)
ans =

     1
     5
    10