我正在尝试创建一些代码来执行以下操作:在时间序列中,当 v 从负到正过零时,这与其他过零(左右方向)相隔至少 4 天,如果我向右取 8 个元素(从零交叉),至少 80% 的天数是正数,如果我向左取 6 个元素(从零交叉),至少 60% 的天数是负数。满足这些条件的系列将与该位置一起添加书签或保存。
谢谢你的帮助..
v=[-1 2 3 -9 -8 -6 -7 -9 -3 -2 -5 -6 -3 1 6 8 5 9 7 4 5 6 -5 -7 2 5 3 2 -2 -1 -5 -4 1 4 3 5 6 3 4 3 -4 5]
使用这个程序,我可以在值从正变为负时提取位置,反之亦然。
vexample=v;
vexample(vexample >= 0) = 1;
vexample(vexample < 0) = -1;
z = vexample > 0;
id = find([true;diff(vexample.') ~= 0]);
k = diff([id;numel(vexample)+1]);
out = -k;
out(z(id)) = k(z(id));
clear id k vexample z
out = -1 2 -10 9 -2 4 -4 8 -1 1
现在,我正在尝试检测符合条件的系列部分,但我遇到了问题