0

1)我有时间序列数据和信号(指标),它们的值随时间变化。

我的问题:

2) 我需要一直进行逻辑检查,例如,如果信号 1 和 2 大约在同一时间发生(等于某个值,例如 = 1),那么我需要知道确切的时间以便检查接下来发生的事情。

3)使事情复杂化,例如,如果信号 3 发生在信号 1 和信号 2 等于 1 之后的某个时间范围内,我想检查其他事情。

4)时间序列很长,需要逐段处理。

请建议如何在不发明轮子的情况下编写它。是否建议使用状态机在 Matlab 中编写?在 C++ 中?,使用线程?

5)Matlab 有没有为这类事情准备好的模拟器?如何以有效的方式定义逻辑条件?

6) 我可以为此使用数据挖掘工具吗?我看到了这个工具列表: 数据挖掘开源工具 不确定从哪里开始。

谢谢

4

1 回答 1

0

第二个和第三个问题可以在 Matlab 中这样完成:

T = -range; % Assuming that t starts at 0.
for n = 1 : length(t)
    if signal1(n) == 1 && signal2(n) == 1
        T = t(n);
    end
    if t(n) - T < range && signal3(n) == 1
        if % Conditions you want to get checked, could also be put in the previous if statement.
            % Things you want to be executed if these coditions are met.
        end
    end
end

使用像 C++ 这样的较低级别的编程语言会提高它的完成速度。如果数据很长,它还可以通过同时加载每个数组的元素来减少内存使用量。Matlab 有一个名为 Simulink 的模拟器,但它更适合解决更复杂的事情,因为您只是有条件地想做某事。

于 2013-04-07T03:38:13.400 回答