edfread
Leer datos del archivo EDF/EDF+
Sintaxis
Descripción
lee el archivo en un horario con opciones adicionales especificadas por uno o más argumentos de par nombre-valor.data
= edfread(filename
,Name,Value
)
[
también devuelve las anotaciones presentes en los registros de datos.data
,annotations
] = edfread(___)
Ejemplos
Lea los datos del archivo EDF example.edf
en un horario. El archivo contiene dos señales, ECG
y ECG2
. Cada señal contiene seis registros de datos y cada registro de datos tiene una duración de 10 segundos.
tt = edfread('example.edf')
tt=6×2 timetable
Record Time ECG ECG2
___________ _______________ _______________
0 sec {1280×1 double} {1280×1 double}
10 sec {1280×1 double} {1280×1 double}
20 sec {1280×1 double} {1280×1 double}
30 sec {1280×1 double} {1280×1 double}
40 sec {1280×1 double} {1280×1 double}
50 sec {1280×1 double} {1280×1 double}
Cree un objeto edfinfo
que contenga información sobre example.edf
. Compruebe que las señales tienen los nombres esperados. Extraiga las tasas de muestreo de las señales utilizando las propiedades DataRecordDuration y NumSamples del objeto.
info = edfinfo('example.edf');
info.SignalLabels
ans = 2×1 string
"ECG"
"ECG2"
fs = info.NumSamples/seconds(info.DataRecordDuration)
fs = 2×1
128
128
Represente el primer registro de la primera señal. Para obtener más información acerca del acceso a los datos de las tablas, consulte Acceder a datos en tablas.
recnum = 1; signum = 1; t = (0:info.NumSamples(signum)-1)/fs(signum); y = tt.(signum){recnum}; plot(t,y) legend(strcat("Record ",int2str(recnum), ... ", Signal ",info.SignalLabels(signum))) hold on
Extraiga y represente el quinto registro de la segunda señal.
recnum = 5; signum = 2; t = (0:info.NumSamples(signum)-1)/fs(signum); y = tt.(signum){recnum}; plot(t,y, ... 'DisplayName',strcat("Record ",int2str(recnum), ... ", Signal ",info.SignalLabels(signum))) hold off xlabel('t (seconds)')
Cree un objeto edfinfo
para obtener información acerca del archivo EDF example.edf
. Extraiga el número de registros y los nombres de las variables que se incluyen en el archivo.
info = edfinfo('example.edf');
nrec = info.NumDataRecords
nrec = 6
vars = info.SignalLabels
vars = 2×1 string
"ECG"
"ECG2"
Lea los registros segundo y quinto que correspondan a la variable ECG2
. Devuelva las señales como horarios con filas de tiempos que correspondan a los tiempos de muestreo de la señal. Exprese la información de tiempo como arreglos datetime
.
data = edfread('example.edf', ... 'SelectedDataRecords',[2 5],'SelectedSignals',"ECG2", ... 'DataRecordOutputType','timetable','TimeOutputType','datetime')
data=2×1 timetable
Record Time ECG2
____________________ __________________
10-Oct-2020 12:02:28 {1280×1 timetable}
10-Oct-2020 12:02:58 {1280×1 timetable}
Cambie el nombre de las filas de tiempo a "Date and Time"
y el nombre de la variable a "Electrocardiogram"
.
data.Properties.DimensionNames = ["Date and Time" "Variables"]; data.Properties.VariableNames = "Electrocardiogram"; data
data=2×1 timetable
Date and Time Electrocardiogram
____________________ __________________
10-Oct-2020 12:02:28 {1280×1 timetable}
10-Oct-2020 12:02:58 {1280×1 timetable}
Argumentos de entrada
Nombre del archivo EDF o EDF+, especificado como un vector de caracteres o un escalar de cadena.
Dependiendo de la ubicación del archivo, filename
puede tener una de estas formas.
Ubicación | Forma |
---|---|
Carpeta actual o carpeta en la ruta de MATLAB® | Especifique el nombre del archivo en Ejemplo: |
Archivo en una carpeta | Si el archivo no se encuentra en la carpeta actual o en una carpeta en la ruta de MATLAB, especifique el nombre completo o relativo de la ruta. Ejemplo: Ejemplo: |
Nota
edfread
no es compatible con los archivos EDF EyeLink®.
Tipos de datos: char
| string
Argumentos de par nombre-valor
Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.
En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: 'SelectedSignals',["Thorax" "Abdomen"],'SelectedDataRecords',[2 7],'TimeOutputType','datetime'
dirige instrucciones a edfread
para que lea los registros de datos segundo y séptimo que corresponden a las señales Thorax
y Abdomen
y devuelve la información de tiempo como arreglos datetime
.
Nombres de señales para leer, especificados como pares separados por comas que consisten en 'SelectedSignals'
y un vector de cadena o un arreglo de celdas de vectores de caracteres.
'SelectedSignals'
debe ser un subconjunto de los nombres de las señales que se incluyen en el archivo. Para conseguir los nombres de todas las señales del archivo, cree un objetoedfinfo
y utilice la propiedadSignalLabels
.Si no se especifica este argumento,
edfread
lee todas las señales en el archivo.
Ejemplo: ["Thorax 1" "Abdomen 3"]
y {'Thorax 1' 'Abdomen 3'}
especifican Thorax 1
y Abdomen 3
como las señales que leer de un archivo.
Tipos de datos: char
| string
Índices de registros para leer, especificados como pares separados por comas que consisten en 'SelectedDataRecords'
y un vector de enteros positivos. Los enteros en un vector deben ser únicos e ir en aumento.
'SelectedDataRecords'
debe ser un subconjunto de registros de datos incluido en el archivo. Para ver cuántos registros hay en el archivo, cree un objetoedfinfo
y utilice la propiedadNumDataRecords
. De forma alternativa, lea el archivo entero y utilice la funciónheight
de MATLAB.Si no se especifica este argumento,
edfread
lee todos los registros de datos del archivo.
Tipos de datos: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Tipo de datos de salida, especificados como pares separados por comas que consisten en 'DataRecordOutputType'
y 'vector'
o 'timetable'
.
'vector'
: devuelve las señales endata
como vectores.'timetable'
: devuelve las señales endata
como tablas con filas de tiempo que corresponden a tiempos de muestreo.
Tipos de datos: char
| string
Tipo de tiempo de salida, especificado como par separado por comas que consta de 'TimeOutputType'
y 'duration'
o 'datetime'
.
Tipos de datos: char
| string
Argumentos de salida
Datos de salida, devueltos como horario. Cada fila de data
corresponde a un registro y cada variable de data
corresponde a una señal.
Si
'DataRecordOutputType'
se especifica como'vector'
, el segmento de señal para cada registro de datos se devuelve como un vector.Si
'DataRecordOutputType'
se especifica como'timetable'
, el segmento de señal para cada registro de datos se devuelve como un horario con filas de tiempo que corresponden a tiempos de muestreo de señal.
Cada fila de tiempo de data
contiene el tiempo de inicio de cada registro de datos correspondiente.
Si
'TimeOutputType'
se establece en'duration'
, el tiempo de inicio de cada registro es relativo al tiempo de inicio del registro del archivo.Si
'TimeOutputType'
se establece en'datetime'
, el tiempo de inicio de cada registro es el tiempo de inicio absoluto.
Anotaciones de registros, devueltas como horario. El horario contiene estas variables:
Onset
: tiempo en el que ocurrió la anotación. El tipo de datos deOnset
depende del valor especificado para'TimeOutputType'
.Annotations
: una cadena que contiene el texto de la anotación.Duration
: un escalar de duración que indica la duración del evento descrito por la anotación. Si el archivo no especifica una duración de la anotación, esta variable se devuelve comoNaN
.
Referencias
[1] Kemp, Bob, Alpo Värri, Agostinho C. Rosa, Kim D. Nielsen, and John Gade. “A Simple Format for Exchange of Digitized Polygraphic Recordings.” Electroencephalography and Clinical Neurophysiology 82, no. 5 (May 1992): 391–93. https://doi.org/10.1016/0013-4694(92)90009-7.
[2] Kemp, Bob, and Jesus Olivan. "European Data Format 'plus' (EDF+), an EDF Alike Standard Format for the Exchange of Physiological Data." Clinical Neurophysiology 114, no. 9 (2003): 1755–1761. https://doi.org/10.1016/S1388-2457(03)00123-8.
Historial de versiones
Introducido en R2020b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)