(MatLab)计算数组中出现次数并检查是否大于参数

时间:2014-11-16 11:40:23

标签: arrays matlab find-occurrences

我是MatLab的新用户,我遇到了一个简单的任务。我有一个由0和1组成的数组:我需要检查1是否连续超过X时间。 即A = [0 1 1 1 0 1 0 1 1 1 1 0 1]我需要知道数组中是否有4个(例如)连续1个(它只需要发生一次,我继续使用什么我想做)。如果条件得到验证,我将创建一个新变量,例如Y,并设置为1并继续我的脚本。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这应该可以完成这项工作:while循环从数组中剪切出一个包含4个元素的向量,并将其与具有4个元素且仅有1个元素的向量进行比较。如果A中包含4个连续1的向量,则变量four_consecutive_ones_found将设置为1,否则将返回0.

A=[0 1 1 1 0 0 0 1 1 1 0 1 1 1 1];

b=[1 1 1 1];

bool = 0
i_start=1
i_end=4

while bool==0
    C=A(i_start:i_end)

    if C==b
       four_consecutive_ones_found = 1;
       bool = 1
    else
       i_start=i_start+1
       i_end=i_end+1 

       if i_end > numel(A) && bool == 0
           bool =2
           four_consecutive_ones_found = 0;
       end
    end
end 

four_consecutive_ones_found