Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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(...) は、最初のトリガーの絶対時間を返します。abstimeclock ベクトルとして返されます。

[data,time,abstime,events] = daqread(...) は、イベントのログを返します。events はイベント情報を含む構造体です。SamplesTime、または Triggers パラメーター (以下参照) のいずれかを指定すると、指定したイベントのみがイベント構造体に含まれます。

[data,time,abstime,events,daqinfo] = daqread(...) は、ObjInfo および HwInfo の 2 つのフィールドを含む構造体 daqinfo を返します。ObjInfo はプロパティの名前と値のペアを含む構造体、HwInfo はハードウェア情報を含む構造体です。全体のイベント ログは、daqinfo.ObjInfo.EventLog に返されます。

data = daqread(...,'Param1', Val1,...) は、以下のパラメーターを使用して、返されるデータの量およびデータの形式を指定します。

パラメーター

説明

Samples

サンプル範囲を指定します。

Time

相対時間範囲を指定します。

Triggers

トリガー範囲を指定します。

Channels

チャネル範囲を指定します。チャネル名は、cell 配列として指定できます。

DataFormat

データ形式を doubles (既定の設定) または native として指定します。

TimeFormat

時刻形式を vector (既定の設定) または matrix として指定します。

OutputFormat

出力形式を matrix (既定の設定) または tscollection として指定します。tscollection を指定すると、関数 daqreaddata のみを返します。

SamplesTime、および Triggers プロパティは、相互に排他的です。つまり、一度に定義できるパラメーターは、SamplesTriggers、または Time のいずれか 1 つのみです。

daqinfo = daqread('filename','info') は同様に、ファイルからのデータの読み取り時にオーバーヘッドを発生させることなく、ファイルのメタデータを daqinfo 構造体に返します。daqinfo 構造体には、以下の 2 つのフィールドが含まれます。

daqinfo.ObjInfo

ファイル filename の作成に使用されるデータ取得オブジェクトのパラメーターと値のペアを含む構造体です。メモ: UserData プロパティ値は復元されません。

daqinfo.HwInfo

ハードウェア情報を含む構造体です。全体のイベント ログは、daqinfo.ObjInfo.EventLog に返されます。

Data Acquisition Toolbox を使用してデータを取得します。アナログ入力オブジェクト ai は、4 つのチャネルのうち 2 番目のデータを取得して、このデータを出力ファイル data.daq に保存します。

ai = analoginput('nidaq','Dev1');
chans = addchannel(ai,0:3);
set(ai,'SampleRate',1000)
ActualRate = get(ai,'SampleRate');
set(ai,'SamplesPerTrigger, ActualRate)
set(ai,'LoggingMode','Disk&Memory')
set(ai,'LogFileName','data.daq')
start(ai)

データが収集され、ディスク ファイルに保存されると、関数 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 ファイルの詳細

  • 関数 daqread でデータ、相対時間、絶対時間、およびイベント情報を返すために使用される形式は、Data Acquisition Toolbox の一部である関数 getdata で使用される形式と同じです。詳細については、Data Acquisition Toolbox ドキュメンテーションを参照してください。

  • 複数のトリガーからのデータが読み取られる場合、各トリガーは NaN で区切られるため、結果のデータ配列のサイズは、発行されるトリガー数により増加します。

  • ObjInfo.EventLog には、SamplesTime、または Triggers で指定した値に関係なく、常に、全体のイベント ログが含まれます。

  • UserData プロパティ値は、デバイス オブジェクト (ObjInfo) 情報を返すときに復元されません。

  • .daq ファイルを読み取るとき、関数 daqread は、cell 配列として指定されたプロパティ値を返しません。

  • Data Acquisition Toolbox (.daq) ファイルを作成するには、LogFileName プロパティの値を指定 (または既定値を使用) し、LoggingMode プロパティを Disk または Disk&Memory に設定します。

返される時系列集合オブジェクトの詳細

OutputFormattscollection に設定されていると、関数 daqread は、時系列集合オブジェクトを返します。この時系列集合オブジェクトには、ファイルの各チャネルの絶対時系列オブジェクトが含まれます。関数 daqread により時系列集合オブジェクトおよび時系列オブジェクトのプロパティの一部がどのように設定されるかについて、以下で説明します。

  • 時系列集合オブジェクトの time プロパティは、ファイルで指定されている InitialTriggerTime プロパティの値に設定されます。

  • 各時系列オブジェクトの name プロパティは、ファイルのチャネルの Name プロパティの値に設定されます。この名前が、時系列オブジェクト名として使用できない場合、関数 daqread は、追加されるチャネルの HwChannel プロパティで、名前を 'Channel' に設定します。

  • 時系列オブジェクトの Units プロパティの値は、DataFormat パラメーターの値により異なります。DataFormat パラメーターが 'double' に設定されている場合、関数 daqread は、集合の各時系列オブジェクトの DataInfo プロパティをファイル内の対応するチャネルの Units プロパティの値に設定します。DataFormat パラメーターが 'native' に設定されている場合、daqreadUnits プロパティを 'native'' に設定します。これらのプロパティの詳細については、Data Acquisition Toolbox ドキュメンテーションを参照してください。

  • 各時系列オブジェクトには、チャネルに関連付けられているイベントのログに対応する、tsdata.event オブジェクトが追加されます。

関数 daqread が複数のトリガーからのデータを返す場合、各トリガーのデータは、時系列データにおいて NaN で区切られます。このため、トリガー数により、時系列オブジェクトのデータおよび時間ベクトルの長さが増加します。