Matlab - 对先前值进行计数调整

时间:2014-04-10 16:07:53

标签: matlab conditional-statements probability

我有一个n x m矩阵,并且每列都有相关的分位数(例如m = 3)

-0.0627 -0.0564 -0.0413

对于每列,我如何计算Xn + 1在每个相关分位数下面的次数,假设Xn有?

我可以使用sum(X =< -0.0627)作为第一列,但是如何模拟条件,它应该只计算前一个值是否也低于-0.0627?

如果答案太明显或问题不明确,我很抱歉,但我只是从matlab开始。

感谢!!!

2 个答案:

答案 0 :(得分:1)

如果X是一列,您可以使用&加入Xn和Xn + 1必须低于-0.0627的两个条件,如下所示:

Xn = X(1:end-1);
Xnplus1 = X(2:end);
sum(Xn <= -0.0627 &  Xnplus1 <= -0.0627)

答案 1 :(得分:1)

如果我理解正确:

data = [ -1 -1  0
         -2 -2  0
          0 -3 -1
         -2  0  0 ];
quant = [-0.0627 -0.0564 -0.0413];

R = bsxfun(@lt, data, quant);
result = sum(R(1:end-1,:) & R(2:end,:));

这会在我的示例中给出结果[1 2 0]