typestar

Ordenar y buscar en Igor Pro

Sort reordena en el lugar; las funciones de búsqueda esperan una wave ordenada.

Function FindCrossing(WAVE times, WAVE values, Variable level)
    Sort times, times, values

    FindLevel/Q values, level
    if (V_flag != 0)
        return NaN
    endif

    Variable index = BinarySearch(times, V_LevelX)
    Printf "crossed %g at x=%g (point %d)\r", level, V_LevelX, index
    return V_LevelX
End

Cómo funciona

  1. Sort key, w1, w2 reordena cada wave según la misma clave.
  2. BinarySearch necesita datos monótonos y devuelve el punto inferior.
  3. FindLevel encuentra dónde una wave cruza un valor, en unidades de x.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
282
Tokens
52
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 39 segundos.

Escribe este fragmento

Paso 3 de 3 en Medición; paso 7 de 16 en Waves y análisis.

← Anterior Siguiente →