Main Content

From File

MAT ファイルから Simulink モデルへのデータの読み込み

  • From File block

ライブラリ:
Simulink / Sources

説明

From File ブロックは、MAT ファイルから Simulink® モデルに対してデータを読み取り、そのデータをブロック出力で信号または非バーチャル バスとして提供します。MATLAB® パス上にあるまたはない MAT ファイルからデータを読み込むことができます。1 つのモデルに、同じ MAT ファイルからデータを読み込む From File ブロックが複数あってもかまいません。

出力のサンプル時間、内挿および外挿動作、ゼロクロッシング検出を使用するかどうかを含む、ブロックでファイル内のデータから出力を構成する方法を指定できます。

From File ブロックのアイコンには、データをブロックに提供する MAT ファイルの名前が表示されます。たとえば、From File ブロックを使用してデータをファイル myData.mat から読み込む場合、ブロックには myData.mat と表示されます。

MAT ファイルのデータ

From File ブロックは、timeseries オブジェクトまたは配列に保存されている MAT ファイルからデータを読み込むことができます。最初の行には時間データが含まれ、以降の行にはスカラーまたはベクトル信号のデータが含まれます。timeseries オブジェクトに保存されたデータの読み込みでは、幅広いデータと出力タイプがサポートされ、MAT ファイルは Version 7.3 でなければなりません。

データについての考慮事項

timeseries 形式

配列形式

時間データ要件

  • データ型は double でなければなりません

  • 値は単調増加でなければなりません

  • データ型は double でなければなりません

  • 値は単調増加でなければなりません

サポートされる信号のデータ型

  • halfint64uint64 を除く任意の組み込みデータ型

  • 列挙データ型

  • 最大 32 ビットの語長をもつ固定小数点データ型

double

信号データの実数/複素数

実数または複素数

実数

信号データ要件

NaNInf、または -Inf 値を含めてはなりません

NaNInf、または -Inf 値を含めてはなりません

出力のタイプ

  • スカラー、ベクトル、または多次元信号

  • バス

スカラーまたはベクトル信号

MAT ファイルのバージョン

Version 7.3

すべてのバージョン

From File ブロックは、MAT ファイルに含まれる変数の数に関係なく、MAT ファイル内の 1 つの変数のみからデータを読み込みます。複数の変数を含む Version 7.3 の MAT ファイルからデータを読み込むと、From File ブロックはアルファベット順の最初の変数のデータを読み込みます。Version 7.0 以前の MAT ファイルで使用される順序アルゴリズムはさらに複雑であるため、Version 7.0 以前の MAT ファイルからデータを読み込む場合には、MAT ファイルに単一の変数のデータのみが含まれることを確認してください。

メモ

[配列] 形式を使用する To Workspace ブロックに接続された出力、状態、または信号のログでは、From File ブロックに必要な形式とは異なる形式で配列が生成されます。ログの [配列] 形式では、最初の列に時間値が含まれ、From File ブロックの配列形式では、最初の行に時間値が含まれます。From File ブロックと To File ブロックは、同じ配列形式を使用します。

MAT ファイルのバージョン

MAT ファイルのバージョンも、From File ブロックでのデータの読み込み方法に影響します。Version 7.3 の MAT ファイルからデータを読み込む場合、シミュレーション時にはデータはインクリメンタルに読み込まれます。Version 7.0 以前の MAT ファイルからデータを読み込む場合、シミュレーションの開始時にすべてのデータがメモリに読み込まれます。

MAT ファイルを Version 7.3 に変換するには、関数 load を使用して Version 7.0 以前の MAT ファイルのデータをベース ワークスペースに読み込みます。次に、バージョンを '-v7.3' として指定した関数 save を使用してデータを Version 7.3 の MAT ファイルに保存します。たとえば、以下のコマンドは、変数 inputData を含むファイル myData.mat を Version 7.3 に変換します。

load("myData.mat");
save("myData.mat","inputData","-v7.3");

詳細については、MAT ファイルのバージョンを参照してください。

端子

出力

すべて展開する

指定された MAT ファイルから読み込まれたデータを使用して作成された出力。読み込むデータに応じて、出力はスカラー、多次元信号または非バーチャル バスになる可能性があります。From File ブロックは、halfint64uint64 を除くすべての組み込みデータ型の実数データおよび複素数データの読み込みをサポートします。

From File ブロックではバス配列データの読み込みはサポートされていません。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean | fixed point | enumerated | bus
複素数のサポート: あり

パラメーター

すべて展開する

読み込むデータを含む MAT ファイル名または MAT ファイルへのパス。ファイルが MATLAB パス上または現在の作業ディレクトリにない場合は、ファイルのパスを指定します。

パスまたはファイル名をテキスト ボックスに入力するか、[MAT ファイルを参照します] ボタン をクリックして MAT ファイルを参照できます。UNIX® システムでは、ホーム フォルダーを示すチルダ (~) でパスを始めることができます。

同じシミュレーションでモデルがデータを記録するファイルからデータを読み込むことはできません。

ヒント

  • From File ブロックでは、データまたはファイルを変更することなく、To File ブロックを使用して作成されたファイルからデータを読み込むことができます。

  • 現在の作業ディレクトリを確認するには、MATLAB コマンド ウィンドウで「pwd」と入力します。

  • From File ブロックを使用した C/C++ コード生成のデータ要件の詳細については、コード生成を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: FileName
値: 'untitled.mat' (既定値) | MAT file name | path to MAT file
データ型: char | string

例: set_param("mdl/From File","FileName","InputData.mat") configures the From File block named From File in the model mdl to load input data from the file InputData.mat.

From File ブロックで読み込まれる MAT ファイル内のデータのデータ型。既定では、From File ブロックはファイルのデータ、または信号のデータ型を定義する下流のブロックから出力信号のデータ型を継承します。MAT ファイル内のデータのデータ型が継承されたデータ型と一致しない場合、エラーが出されます。

スカラーまたは多次元信号のデータを読み込むときに、出力データ型を継承することを選択するか、MAT ファイル内のデータのデータ型に一致するように出力データ型を指定できます。

バスのデータを読み込むには、[出力データ型][Bus: <bus object>] に設定し、出力バスを定義する Simulink.Bus オブジェクトの名前を指定します。

列挙データを読み込むには、[出力データ型][Enum: <class name>] に設定し、列挙データ値を定義する列挙型クラスの名前を指定します。

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: OutDataTypeStr
値: 'Inherit (auto)' (既定値) | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | 'Bus: <object name>' | '<data type expression>'
データ型: char | string

例: set_param("mdl/From File","OutputDataTypestr","double") configures the From File block named From File in the model mdl to load data from a MAT file that contains double signal values and produce a signal with double data type.

[サンプル時間] パラメーターは、シミュレーション中にブロックが新しい出力値を計算するタイミングを指定します。詳細については、サンプル時間の指定を参照してください。

出力に時間オフセットを含めない場合は、[サンプル時間] パラメーターをスカラーとして指定します。出力に時間オフセットを追加する場合は、[サンプル時間] パラメーターを、最初の要素がサンプリング周期、2 番目の要素がオフセットである 12 列のベクトルとして指定します。

既定では、[サンプル時間] パラメーターの値は 0 で、これは時間オフセットのない連続サンプル時間を示します。離散信号の場合は、サンプル時間を離散サンプリング間隔として指定します。たとえば、サンプル時間として 0.1 を指定して、100 ミリ秒ごとにサンプリングされる離散信号をモデル化します。値を継承するには、サンプル時間として -1 を指定します。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: SampleTime
値: '0' (既定値) | scalar | 1-by-2 vector
データ型: char | string

例: set_param("mdl/From File","SampleTime","-1") configures the From File block named From File in the model mdl to inherit its sample time.

外挿法は、MAT ファイル データの最初のサンプル前のシミュレーション時間に対する出力値を特定するために使用されます。

メソッド説明
線形外挿

ブロックで出力値を特定する方法は、MAT ファイル内のデータの型によって異なります。

  • double データの場合、From File ブロックは最初の 2 つのサンプルを使用して出力値を線形外挿します。

  • Boolean データの場合、From File ブロックは出力値に MAT ファイル データの最初の値を使用します。

  • 他のすべての組み込みデータ型では、From File ブロックは以下を実行します。

    1. データを double にアップキャストする。

    2. MAT ファイル データの最初の 2 つのサンプルを使用して出力値を線形外挿する。

    3. 外挿データ値を元のデータ型にダウンキャストする。

MAT ファイル データに 1 つのサンプルのみ含まれる場合、From File ブロックは出力でその値を提供します。

From File ブロックで列挙データまたは固定小数点データを読み込む場合は、[線形外挿] オプションを使用しないでください。

外挿設定は、バス内のすべての信号に適用されます。バス内のいずれかの信号に列挙データまたは固定小数点データが含まれている場合は、[線形外挿] オプションを使用しないでください。

Plot that shows the output for a From File block configured to linearly extrapolate the output value for simulation times before the first sample in the loaded data. The block loads data that starts 2 seconds into the simulation.

最初の値をホールド

From File ブロックは、MAT ファイル内の最初のデータ値を出力値として使用します。

Plot that shows the output for a From File block configured to hold the first value in the loaded data for simulation times before the first sample in the loaded data. The block loads data that starts 2 seconds into the simulation.

グラウンド値

From File ブロックの出力値は、MAT ファイル内のデータ型によって異なります。

  • 組み込み数値型 — 0

  • Booleanfalse

  • 固定小数点データ型 — 0 の値の表現。スケーリングおよび制限された精度により正確に 0 にならない場合があります。

  • 列挙データ型 — 既定値

Plot that shows the output for a From File block configured to use the ground value as the output value for simulation times before the first sample in the loaded data. The block loads data that starts 2 seconds into the simulation.

ヒント

ERT/GRT ターゲットのビルドまたは SIL/PIL シミュレーション モードの使用を含むコードを生成するには、[最初のデータ点前のデータ外挿][線形外挿] に指定します。 From File ブロックを使用した C/C++ コード生成の詳細については、コード生成を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: ExtrapolationBeforeFirstDataPoint
値: 'Linear extrapolation' (既定値) | 'Hold first value' | 'Ground value'
データ型: char | string

例: set_param("mdl/From File","ExtrapolationBeforeFirstDataPoint","Hold first value") configures the From File block named From File in the model mdl to extrapolate values before the first value in the file by holding the first value in the file.

MAT ファイル データのサンプル間のシミュレーション時間に対する出力値を特定するために使用される内挿法。

メソッド説明
線形内挿

ブロックで出力値を特定する方法は、MAT ファイル内のデータの型によって異なります。

  • double データの場合、From File ブロックは、出力値に必要なシミュレーション時間の前後にデータ値を使用して出力値を線形内挿します。

  • 他のすべての組み込みデータ型では、From File ブロックは以下を実行します。

    1. データを double にアップキャストする。

    2. 出力値に必要なシミュレーション時間の前後に MAT ファイル データ値を使用して出力値を線形内挿する。

    3. 外挿データ値を元のデータ型にダウンキャストする。

  • Boolean データの場合、シミュレーション時間が異なる値をもつ 2 つのワークスペース データ点の間にある場合、From File ブロックは MAT ファイル データ点の中間に値の遷移を配置します。たとえば、データが true から false に遷移する場合、From File ブロックは、MAT ファイル データ点の間隔の前半にあるシミュレーション時間に対して出力値 true を提供し、間隔の後半にあるシミュレーション時間に対して出力値 false を提供します。

MAT ファイル データに 1 つのサンプルのみ含まれる場合、From File ブロックは出力でその値を提供します。

From File ブロックで列挙データまたは固定小数点データを読み込む場合は、[線形内挿] オプションを使用しないでください。

内挿設定は、バス内のすべての信号に適用されます。バス内のいずれかの信号に列挙データが含まれている場合は、[線形内挿] オプションを使用しないでください。

Plot that shows the output for a From File block configured to linearly interpolate the output value for simulation times between the samples in the loaded data.

ゼロ次ホールド

From File ブロックはサンプル間で各データ値を保持します。MAT ファイル データの 2 つのサンプル間のシミュレーション時間に対する出力値は、シミュレーション時間より前のサンプルの値です。

Plot that shows the output for a From File block configured to use zero-order-hold interpolation for simulation times between the samples in the loaded data.

ヒント

ERT/GRT ターゲットのビルドまたは SIL/PIL シミュレーション モードの使用を含むコードを生成するには、[時間範囲内のデータ内挿][線形内挿] に指定します。From File ブロックを使用した C/C++ コード生成の詳細については、コード生成を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: InterpolationWithinTimeRange
値: 'Linear extrapolation' (既定値) | 'Zero order hold'
データ型: char | string

例: set_param("mdl/From File","InterpolationWithinTimeRange","Zero order hold") configures the From File block named From File in the model mdl to use zero order hold interpolation.

MAT ファイル データの最後のサンプル後のシミュレーション時間に対して出力値を特定するために使用される外挿法。

メソッド説明
線形外挿

ブロックで出力値を特定する方法は、MAT ファイル内のデータの型によって異なります。

  • double データの場合、From File ブロックは MAT ファイルの最後の 2 つのサンプルを使用して出力値を線形外挿します。

  • Boolean データの場合、From File ブロックは出力値に MAT ファイルのサンプル値を使用します。

  • 他のすべての組み込みデータ型では、From File ブロックは以下を実行します。

    1. データを double にアップキャストする。

    2. MAT ファイル データの最後の 2 つのサンプルを使用して出力値を線形外挿する。

    3. 外挿データ値を元のデータ型にダウンキャストする。

MAT ファイル データに 1 つのサンプルのみ含まれる場合、From File ブロックは出力としてその値を使用します。

From File ブロックで列挙データまたは固定小数点データを読み込む場合は、[線形外挿] オプションを使用しないでください。

外挿設定は、バス内のすべての信号に適用されます。バス内のいずれかの信号に列挙データが含まれている場合、[線形外挿] オプションを使用しないでください。

Plot that shows the output for a From File block configured to linearly interpolate the output value for simulation times after the last sample in the loaded data. The block loads data that ends 2 seconds before the end of the simulation.

最後の値をホールド

From File ブロックは、MAT ファイル内の最後のデータ値を出力値として使用します。

Plot that shows the output for a From File block configured to hold the last output value for simulation times after the last sample in the loaded data. The block loads data that ends 2 seconds before the end of the simulation.

グラウンド値

From File ブロックの出力値は、MAT ファイル内のデータ型によって異なります。

  • 組み込み数値型 — 0

  • Booleanfalse

  • 固定小数点データ型 — 0 の値の表現。スケーリングおよび制限された精度により正確に 0 にならない場合があります。

  • 列挙データ型 — 既定値

Plot that shows the output for a From File block configured to use the ground value as the output value for simulation times after the last sample in the loaded data. The block loads data that ends 2 seconds before the end of the simulation.

ヒント

ERT/GRT ターゲットのビルドまたは SIL/PIL シミュレーション モードの使用を含むコードを生成するには、[最後のデータ点後のデータ外挿][線形外挿] に指定します。From File ブロックを使用した C/C++ コード生成の詳細については、コード生成を参照してください。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: ExtrapolationAfterLastDataPoint
値: 'Linear extrapolation' (既定値) | 'Hold last value' | 'Ground value'
データ型: char | string

例: set_param("mdl/From File","ExtrapolationAfterLastDataPoint","Hold last value") configures the From File block named From File in the model mdl to extrapolate values after the last value in the file by holding the last value in the file.

ゼロクロッシング検出とは、ブロック出力内の不連続点である、"ゼロクロッシング" を特定したり、可変ステップ ソルバーで不連続点近くにおける過度に小さいタイム ステップを回避してシミュレーションの低速化を防ぐために用いられる手法です。From File ブロックでは、[サンプル時間] パラメーターが連続サンプル時間を表す 0 に設定されている場合にゼロクロッシングを検出できます。

データに同じ時間をもつ複数のサンプルが含まれている場合に、読み込まれたデータによってブロック出力内の不連続点が作成されます。たとえば、次の入力データの場合、不連続点は時間 2 で発生します。

time:     0 1 2 2 3
signal:   2 3 4 5 6

From File ブロックでは、内挿および外挿の設定方法に基づいて出力に不連続点も作成できます。

  • [最初のデータ点前のデータ外挿][グラウンド値] に設定すると、読み込まれたデータの最初のサンプルに不連続点を作成できます。

  • [最後のデータ点後のデータ外挿][グラウンド値] に設定すると、読み込まれたデータの最後のサンプルに不連続点を作成できます。

  • [時間範囲内のデータ内挿][ゼロ次ホールド] に設定すると、読み込まれたデータの各サンプル (最後を含む) に不連続点が作成されます。

このブロックでは、可変ステップ ソルバーを使用するシミュレーションでのみゼロクロッシング検出がサポートされます。シミュレーションに固定ステップ ソルバーを使用する場合、このブロックに対してゼロクロッシングの検出や特定は行われません。

詳細については、ゼロクロッシング検出を参照してください。

ヒント

ERT/GRT ターゲットのビルドまたは SIL/PIL シミュレーション モードの使用を含むコードを生成するには、このチェック ボックスをオフにします。From File ブロックを使用した C/C++ コード生成の詳細については、コード生成を参照してください。

プログラムでの使用

ブロック パラメーター: ZeroCross
: 文字ベクトル
: 'off' | 'on'
既定の設定: 'on'

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: ZeroCross
値: 'on' (既定値) | 'off'
データ型: char | string

例: set_param("mdl/From File","ZeroCross","off") configures the From File block named From File in the model mdl to disable zero-crossing detection.

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed pointa | integer | single

直達

いいえ

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

はい

a 32 ビットまでの固定小数点データ型をサポートします。

拡張機能

バージョン履歴

R2006a より前に導入