我想计算前面有0但大于10且小于20的元素数

时间:2014-04-08 15:26:47

标签: arrays matlab counting

% counting the number of transitions from state 0 to 1,
% rain is an array of size 545.
    count1=0;
    n=numel(rain);
    for k=1:n-1,
        if (rain(k)<=0) & (10<rain(k+1)<20),
            count1=count1+1;
        end
    end
    display(count1)
    display(n)

1 个答案:

答案 0 :(得分:2)

sum(rain(2:end) > 10 & rain(2:end) < 20 & rain(1:end-1) = 0)

rain(1:end-1):获取最后一个元素的所有降雨数据栏 rain(2:end):获取所有雨数据条的第一个元素。这样做的原因是将数据向前移动一个元素,以便于搜索先前的零值。 (即先前的值现在与您要检查限制的值处于相同的位置)

rain > 10将返回一个逻辑向量,其中1 s大于10,否则为0 s。在此调用sum只会将所有1加起来,以便代理它们。