daqread
Data Acquisition Toolbox (..daq) ファイルを読み取る
構文
data = daqread('filename')
[data,time] = daqread(...)
[data,time,abstime] = daqread(...)
[data,time,abstime,events] = daqread(...)
[data,time,abstime,events,daqinfo] = daqread(...)
data = daqread(...,'Param1', Val1,...)
daqinfo = daqread('filename','info')
説明
data = daqread('filename') は、filename で指定された Data Acquisition Toolbox™ (.daq) ファイルからすべてのデータを読み取ります。daqread は、data として m 行 n 列のデータ行列を返します。ここで、m はサンプル数、n はチャネル数です。data に、複数のトリガーからのデータが含まれている場合、各トリガーのデータは NaN で区切られます。OutputFormat プロパティを tscollection に設定すると、関数 daqread は、時系列集合オブジェクトを返します。詳細は、以下を参照してください。
[data,time] = daqread(...) は、時間と値のペアを返します。time は、data と同じ長さの m 行 1 列のベクトルであり、各サンプルの相対時間を含みます。相対時間は、発生する最初のトリガーに対して測定されます。
[data,time,abstime] = daqread(...) は、最初のトリガーの絶対時間を返します。abstime は clock ベクトルとして返されます。
[data,time,abstime,events] = daqread(...) は、イベントのログを返します。events はイベント情報を含む構造体です。Samples、Time、または Triggers パラメーター (以下参照) のいずれかを指定すると、指定したイベントのみがイベント構造体に含まれます。
[data,time,abstime,events,daqinfo] = daqread(...) は、ObjInfo および HwInfo の 2 つのフィールドを含む構造体 daqinfo を返します。ObjInfo はプロパティの名前と値のペアを含む構造体、HwInfo はハードウェア情報を含む構造体です。全体のイベント ログは、daqinfo.ObjInfo.EventLog に返されます。
data = daqread(..., は、以下のパラメーターを使用して、返されるデータの量およびデータの形式を指定します。'Param1', Val1,...)
パラメーター | 説明 |
|---|---|
| サンプル範囲を指定します。 |
| 相対時間範囲を指定します。 |
| トリガー範囲を指定します。 |
| チャネル範囲を指定します。チャネル名は、cell 配列として指定できます。 |
| データ形式を |
| 時刻形式を |
| 出力形式を |
Samples、Time、および Triggers プロパティは、相互に排他的です。つまり、関数呼び出しで指定できるのはこれらのうち 1 つのみです。
daqinfo = daqread('filename','info') は同様に、ファイルからのデータの読み取り時にオーバーヘッドを発生させることなく、ファイルのメタデータを daqinfo 構造体に返します。daqinfo 構造体には、以下の 2 つのフィールドが含まれます。
daqinfo.ObjInfoファイル
filenameの作成に使用されるデータ取得オブジェクトのパラメーターと値のペアを含む構造体です。メモ:UserDataプロパティ値は復元されません。daqinfo.HwInfoハードウェア情報を含む構造体です。全体のイベント ログは、
daqinfo.ObjInfo.EventLogに返されます。
例
この例では、以前のリリースでログ ファイル data.daq に保存されたデータを読み取る方法を説明します。このログは、analoginput オブジェクトのログのプロパティを指定することで実行されていました。daqread を使用して、データおよびその他の取得関連情報を取得します。
data.daq からすべてのサンプル/時間のペアを読み取ります。
[data,time] = daqread('data.daq');data.daq からすべてのチャネルに対して、サンプル 500 から 1000 を読み取ります。
data = daqread('data.daq','Samples',[500 1000]);
ファイル data.daq からネイティブ形式のチャネル インデックス 2、4、および 7 のサンプル 1000 から 2000 のみを読み取ります。
data = daqread('data.daq', 'Samples', [1000 2000],... 'Channels', [2 4 7], 'DataFormat', 'native');
ファイル data.daq からすべてのチャネルで最初と 2 番目のトリガーを表すデータのみを読み取ります。
[data,time] = daqread('data.daq', 'Triggers', [1 2]);
data.daq からチャネル プロパティ情報を取得します。
daqinfo = daqread('data.daq','info'); chaninfo = daqinfo.ObjInfo.Channel;
data.daq に含まれるイベント タイプおよびイベント データのリストを取得します。
daqinfo = daqread('data.daq','info'); events = daqinfo.ObjInfo.EventLog; event_type = {events.Type}; event_data = {events.Data};
ファイル data.daq からすべてのデータを読み取り、時系列集合オブジェクトとして返します。
data = daqread('data.daq','OutputFormat','tscollection');
ヒント
.daq ファイルの詳細
複数のトリガーからのデータが読み取られる場合、各トリガーは
NaNで区切られるため、結果のデータ配列のサイズは、発行されるトリガー数により増加します。ObjInfo.EventLogには、Samples、Time、またはTriggersで指定した値に関係なく、常に、全体のイベント ログが含まれます。UserDataプロパティ値は、デバイス オブジェクト (ObjInfo) 情報を返すときに復元されません。.daqファイルを読み取るとき、関数daqreadは、cell 配列として指定されたプロパティ値を返しません。
返される時系列集合オブジェクトの詳細
OutputFormat が tscollection に設定されていると、関数 daqread は、時系列集合オブジェクトを返します。この時系列集合オブジェクトには、ファイルの各チャネルの絶対時系列オブジェクトが含まれます。関数 daqread により時系列集合オブジェクトおよび時系列オブジェクトのプロパティの一部がどのように設定されるかについて、以下で説明します。
時系列集合オブジェクトの
timeプロパティは、ファイルで指定されているInitialTriggerTimeプロパティの値に設定されます。各時系列オブジェクトの
nameプロパティは、ファイルのチャネルのNameプロパティの値に設定されます。この名前が、時系列オブジェクト名として使用できない場合、関数daqreadは、追加されるチャネルのHwChannelプロパティで、名前を'Channel'に設定します。時系列オブジェクトの
Unitsプロパティの値は、DataFormatパラメーターの値により異なります。DataFormatパラメーターが'double'に設定されている場合、関数daqreadは、集合の各時系列オブジェクトのDataInfoプロパティをファイル内の対応するチャネルのUnitsプロパティの値に設定します。DataFormatパラメーターが'native'に設定されている場合、daqreadはUnitsプロパティを'native'' に設定します。各時系列オブジェクトには、チャネルに関連付けられているイベントのログに対応する、
tsdata.eventオブジェクトが追加されます。