用Matlab求解时间序列

用Matlab求解时间序列,matlab,sequence,Matlab,Sequence,我想编写一个简短的Matlab函数,用于查找时间序列中的序列值,如下所示: 例如:a=[0 0 0 1 0 1 1 1 0 0] 我的预期结果=3;(当数字1发生时,顺序为3次) 谢谢。这里有一个简单的解决方案,可以找到一次运行的次数: result = numel(regexp(char(a+'0'), '1+')); 您还可以使用,它适用于数值数组(尽管没有文档记录): 或者只是: 或者(感谢您为这一次提供的帮助): 下面是一个简单的解决方案,用于查找一次运行的次数: result = n

我想编写一个简短的Matlab函数,用于查找时间序列中的序列值,如下所示:

例如:a=[0 0 0 1 0 1 1 1 0 0]

我的预期结果=3;(当数字1发生时,顺序为3次)

谢谢。

这里有一个简单的解决方案,可以找到一次运行的次数:

result = numel(regexp(char(a+'0'), '1+'));
您还可以使用,它适用于数值数组(尽管没有文档记录):

或者只是:

或者(感谢您为这一次提供的帮助):

下面是一个简单的解决方案,用于查找一次运行的次数:

result = numel(regexp(char(a+'0'), '1+'));
您还可以使用,它适用于数值数组(尽管没有文档记录):

或者只是:

或者(感谢您为这一次提供的帮助):


伟大的这就是我想要的。但我不明白数字(48)是什么意思?这是
'0'
的ASCII码。为了清晰起见,我进行了编辑。它用于将数字转换成相应的字符,非常感谢。我坐了一整天找这个,你帮了我。ThanksBah,打败我到bwlabel:(这是非常完整的。想不出任何其他感官方法。)(太好了!这是我想要的。但我不懂数字(48)这是什么意思?这是
'0'
的ASCII码。为了清晰起见,我编辑了它。它用于将数字转换为相应的字符。非常感谢。我坐了一整天寻找这个,你帮了我。谢谢,比我先到bwlabel:(这是非常完整的。想不出任何其他感官方法。)(
result = sum(diff([a 0])<0);
result = max(bwlabel(a));
[~, result] = bwlabel(a);