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
Sort key, w1, w2reordena cada wave según la misma clave.BinarySearchnecesita datos monótonos y devuelve el punto inferior.FindLevelencuentra dónde una wave cruza un valor, en unidades de x.
Palabras clave y builtins usados aquí
EndFunctionVariableWAVEendififreturn
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.
Paso 3 de 3 en Medición; paso 7 de 16 en Waves y análisis.