Matlab 将数组划分为连续递增序列

Matlab 将数组划分为连续递增序列,matlab,sequences,Matlab,Sequences,我有一个数组中非零列的数组,它严格地递增,但以空格为标点。我需要取非零列的平均值,但是关于断点 例如,如果数组是 a = [2,3,4,5,6,8,9,10] 我需要分别计算列[1,2,3,4,5,6]和[7,8,9,10]的平均值(开始时的额外值是基础信号发生变化时) 此代码: output=accumarray(cumsum([0;diff(a(:)])]

我有一个数组中非零列的数组,它严格地递增,但以空格为标点。我需要取非零列的平均值,但是关于断点

例如,如果数组是

a = [2,3,4,5,6,8,9,10]
我需要分别计算列
[1,2,3,4,5,6]
[7,8,9,10]
的平均值(开始时的额外值是基础信号发生变化时)

此代码:

output=accumarray(cumsum([0;diff(a(:)])]<0)+1,a,[],@(x){x})

将数组拆分为递增序列,以递减为标点

如何将数组拆分为以间隔为标点的递增序列?

找到了答案

output = accumarray( cumsum([0; diff(a(:))] > 1)+1, a, [], @(x) {x} )
他做这项工作

我只需要检查diff(a(:)何时大于1

找到了

output = accumarray( cumsum([0; diff(a(:))] > 1)+1, a, [], @(x) {x} )
他做这项工作

我只需要检查diff(a(:)何时大于1