【问题标题】:Count the occurrence of consecutive 1s in 0-1 data in MATLAB统计MATLAB中0-1数据中连续1的出现次数
【发布时间】:2017-10-12 17:49:52
【问题描述】:

我有一组 1 和 0。如何计算连续1的最大个数?

(例如,x = [ 1 1 0 0 1 1 0 0 0 1 0 0 1 1 1 ....])。这里答案是 3,因为 1 连续出现的最大次数是 3。

我正在研究一些搜索和计数内置功能,但是我没有成功。

【问题讨论】:

  • 谢谢...我不知道接受的想法:-)

标签: matlab


【解决方案1】:

试试这个:

max( diff( [0 (find( ~ (x > 0) ) ) numel(x) + 1] ) - 1)

【讨论】:

    【解决方案2】:

    这是一个解决方案,但可能有点矫枉过正:

    L = bwlabel(x);
    L(L==0) = [];
    [~,n] = mode(L)
    

    有时最好用循环编写自己的函数;大多数情况下,它更干净、更快捷。

    【讨论】:

      【解决方案3】:

      另一种可能性:

      x = randi([0 1], [1 100]);                %# random 0/1 vector
      
      d = diff([0 x 0]);
      maxOccurence = max( find(d<0)-find(d>0) )
      

      an answer 启发,提出了一个类似的问题...

      【讨论】:

        【解决方案4】:

        Cody 问题 15 是在“二进制”字符串中找到最大连续的。 这很好用。如您所知,我对此非常满意! 科迪尺寸 19

        max(cellfun(@numel,strsplit(x,'0')));
        

        【讨论】:

          猜你喜欢
          • 2021-02-22
          • 2016-08-23
          • 1970-01-01
          • 2012-08-07
          • 2020-03-03
          • 1970-01-01
          • 1970-01-01
          • 2022-09-23
          • 1970-01-01
          相关资源
          最近更新 更多