このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
edfread
説明
は、1 つ以上の名前と値のペアの引数で指定された追加オプションを使用して、ファイルを timetable に読み取ります。data
= edfread(filename
,Name,Value
)
また、[
は、データ レコードに存在する注釈を返します。data
,annotations
] = edfread(___)
例
EDF ファイルの timetable への読み取り
EDF ファイルの example.edf
からデータを timetable に読み取ります。ファイルには ECG
と ECG2
の 2 つの信号が含まれています。各信号には 6 つのデータ レコードが含まれ、各データ レコードの持続時間は 10 秒です。
tt = edfread('example.edf')
tt=6×2 timetable
Record Time ECG ECG2
___________ _______________ _______________
0 sec {1280x1 double} {1280x1 double}
10 sec {1280x1 double} {1280x1 double}
20 sec {1280x1 double} {1280x1 double}
30 sec {1280x1 double} {1280x1 double}
40 sec {1280x1 double} {1280x1 double}
50 sec {1280x1 double} {1280x1 double}
example.edf
に関する情報を含むedfinfo
オブジェクトを作成します。期待どおりの名前の信号であることを確認します。オブジェクトの DataRecordDuration プロパティと NumSamples プロパティを使用して、信号のサンプル レートを抽出します。
info = edfinfo('example.edf');
info.SignalLabels
ans = 2x1 string
"ECG"
"ECG2"
fs = info.NumSamples/seconds(info.DataRecordDuration)
fs = 2×1
128
128
最初の信号における最初のレコードをプロットします。テーブル内のデータへのアクセスの詳細については、table 内のデータへのアクセスを参照してください。
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
2 番目の信号における 5 番目のレコードを抽出してプロットします。
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)')
EDF ファイルのサブセットの読み取り
edfinfo
オブジェクトを作成して、EDF ファイル example.edf
に関する情報を取得します。ファイルに含まれているレコードの数と変数の名前を抽出します。
info = edfinfo('example.edf');
nrec = info.NumDataRecords
nrec = 6
vars = info.SignalLabels
vars = 2x1 string
"ECG"
"ECG2"
変数 ECG2
に対応する 2 番目と 5 番目のレコードを読み取ります。信号のサンプル時間に対応する行時間を含む timetable として信号を返します。時間情報を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 {1280x1 timetable}
10-Oct-2020 12:02:58 {1280x1 timetable}
行時間の名前を "Date and Time"
に変更し、変数の名前を "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 {1280x1 timetable}
10-Oct-2020 12:02:58 {1280x1 timetable}
入力引数
filename
— EDF または EDF+ ファイルの名前
文字ベクトル | string スカラー
EDF または EDF+ ファイルの名前。文字ベクトルまたは string スカラーとして指定します。
ファイルの場所に応じて、filename
は次の形式のいずれかを取ります。
位置 | 形式 |
---|---|
現在のフォルダーまたは MATLAB® パス上のフォルダー |
例: |
フォルダー内のファイル | ファイルが現在のフォルダーまたは MATLAB パス上のフォルダーにない場合は、絶対パス名または相対パス名を指定します。 例: 例: |
メモ
edfread
は EyeLink® EDF ファイルをサポートしていません。
データ型: char
| string
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みました。
例: 'SelectedSignals',["Thorax" "Abdomen"],'SelectedDataRecords',[2 7],'TimeOutputType','datetime'
は、Thorax
と Abdomen
の信号に対応する 2 番目と 7 番目のデータ レコードを読み取るように edfread
に指示し、時間情報を datetime
配列として返します。
SelectedSignals
— 読み取る信号の名前
string ベクトル | 文字ベクトルの cell 配列
読み取る信号の名前。'SelectedSignals'
と、文字ベクトルの string ベクトルまたは cell 配列で構成されるコンマ区切りのペアとして指定します。
'SelectedSignals'
は、ファイルに含まれている信号名のサブセットでなければなりません。ファイル内のすべての信号名を取得するには、edfinfo
オブジェクトを作成し、SignalLabels
プロパティを使用します。この引数が指定されていない場合、
edfread
はファイル内のすべての信号を読み取ります。
例: ["Thorax 1" "Abdomen 3"]
と {'Thorax 1' 'Abdomen 3'}
は、いずれもファイルから読み取る信号として Thorax 1
と Abdomen 3
を指定します。
データ型: char
| string
SelectedDataRecords
— 読み取るレコードのインデックス
1:height(edfread
(filename
))
(既定値) | 正の整数のベクトル
edfread
(filename
))読み取るレコードのインデックス。'SelectedDataRecords'
と正の整数のベクトルで構成されるコンマ区切りのペアとして指定します。ベクトル内の整数は一意であり、厳密に増加していなければなりません。
'SelectedDataRecords'
は、ファイルに含まれるデータ レコードのサブセットでなければなりません。ファイルに含まれるレコードの数を確認するには、edfinfo
オブジェクトを作成し、NumDataRecords
プロパティを使用します。あるいは、ファイル全体を読み取り、MATLAB 関数height
を使用します。この引数が指定されていない場合、
edfread
はファイル内のすべてのデータ レコードを読み取ります。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
DataRecordOutputType
— データの出力タイプ
'vector'
(既定値) | 'timetable'
データの出力タイプ。'DataRecordOutputType'
と、'vector'
または 'timetable'
のいずれかで構成されるコンマ区切りのペアとして指定します。
'vector'
—data
の信号をベクトルとして返します。'timetable'
—data
の信号を、信号のサンプル時間に対応する行時間を含む timetable として返します。
データ型: char
| string
出力引数
data
— 出力データ
timetable
出力データ。timetable として返されます。data
の各行はレコードに対応し、data
の各変数は信号に対応します。
'DataRecordOutputType'
が'vector'
として指定されている場合、各データ レコードの信号セグメントはベクトルとして返されます。'DataRecordOutputType'
が'timetable'
として指定されている場合、各データ レコードの信号セグメントは、信号サンプル時間に対応する行時間を含む timetable として返されます。
data
の各行時間には、対応するデータ レコードの開始時間が含まれます。
'TimeOutputType'
が'duration'
に設定されている場合、各レコードの開始時間はファイル記録の開始時間に相対します。'TimeOutputType'
が'datetime'
に設定されている場合、各レコードの開始時間は絶対開始時間です。
annotations
— レコードの注釈
timetable
レコードの注釈。timetable として返されます。timetable には次の変数が含まれます。
Onset
— 注釈が発生した時間。Onset
のデータ型は、'TimeOutputType'
で指定された値に依存します。Annotations
— 注釈テキストを含む文字列。Duration
— 注釈によって記述されたイベントの持続時間を示す duration スカラー。ファイルで注釈の持続時間が指定されていない場合、この変数はNaN
として返されます。
参照
[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.
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)