Calcula a diferença entre dois conjuntos de dados não lineares [fechados]

1

Eu gostaria de calcular a diferença entre dois conjuntos de dados em qualquer momento no tempo. O problema é que os "timestamps" em que os dois conjuntos de dados foram tirados diferem. Por exemplo, considere estes conjuntos de dados

time-1   state-1    time-2    state-2
6.164012 1          6.164015  1
6.290051 2          6.290055  2
6.454675 3          6.454678  3
7.006175 4          7.006178  4
7.080418 5          7.016555  5
7.193570 6          7.016595  4
7.351850 7          7.016595  3
7.465638 8          7.016595  2
7.492480 9          7.080421  3
7.524426 10         7.193572  4
8.006629 11         7.203975  5

Seria suficiente ter a diferença entre o estado 1 e o estado 2 calculados a cada 0,000001 segundo (força bruta). Alguém sabe como resolver esse problema?

EDIT: Para esclarecer a minha pergunta: o primeiro conjunto de dados contém um carimbo de hora (time-1) e um valor correspondente (state-1); o segundo conjunto de dados contém também um registro de data e hora (hora-2) e um valor correspondente (estado-2). Eu gostaria de comparar as variáveis "state" a cada momento para encontrar a diferença máxima entre ambos. No entanto, como os timestamps não estão sincronizados entre os dois conjuntos de dados, não posso simplesmente comparar a linha 1 com a linha 1. Os conjuntos de dados podem ser lidos da seguinte forma: o conjunto de dados 1 tem 1 estado no tempo 6.164012 segundos e após 2 estados após 6.290051 segundos . O conjunto de dados 2 possui 1 estado após 6.164015 segundos e 2 estados após 6.2900.55 segundos.

EDIT2: Você pode pensar nos dois conjuntos de dados como funções de etapa (o eixo x é o tempo, o eixo y a variável de estado). Então você acaba com algo assim:

^
|    +---------+
|    |         | +---+
| +--+   +---+ | |   |
| |      |   | +-+   + ... f1
|--------+   +-------- ... f2
+------------------------------->

E eu quero saber em qual momento (valor x) a diferença entre f1 e f2 (y_1 - y_2) está no seu pico. Nesse caso, não tenho "funções", mas dois conjuntos de dados pertencentes ao mesmo experimento estão sendo executados com parâmetros diferentes.

    
por Martin 08.10.2012 / 16:13

1 resposta

1

Sua pergunta não é muito clara. Se o que você está tentando fazer é comparar os campos 2 e 4 de um arquivo, faça o seguinte:

awk '{print $2-$4}' file.txt

Eu suspeito que isso não é o que você está tentando fazer. Em caso positivo, atualize sua pergunta com mais informações para que possamos ajudá-lo melhor.

    
por 08.10.2012 / 16:52

Tags