Microsoft Excel のインポート、エクスポート、ログ形式
R2026bシミュレーション データ インスペクターまたは Simulink® Test™ を使用して、Microsoft® Excel® ファイルからデータをインポートしたり、データを Microsoft Excel ファイルにエクスポートすることができます。Playback ブロックを使用して Excel スプレッドシートからモデルにデータを読み込んだり、Record ブロックを使用して Excel ファイルにデータを記録したりすることもできます。シミュレーション データ インスペクター、Playback ブロック、および Record ブロックで同じ Microsoft Excel ファイル形式を使用できます。
ヒント
Excel ファイルのデータの形式がこのトピックの指定に一致しない場合は、独自のファイル リーダーを記述し、io.reader クラスを使用してデータをインポートできます。
標準ファイル形式
最も簡易な形式では、Excel ファイルの最初の行が、ファイル内の信号の名前を示すヘッダーになります。最初の列は時間です。時間列の名前は time にしなければならず、時間値は単調に増加しなければなりません。信号名の下の行には、各タイム ステップに対応する信号値が示されます。

Excel では Inf 値や NaN 値はサポートされません。このことはインポート操作とエクスポート操作の両方に影響します。Excel ファイルからデータをインポートする場合、シミュレーション データ インスペクターでは次のようになります。
組み込みデータ型はすべてサポートされる
time列に空のセルまたは数値エラー (Inf値やNaN値によって生じるものなど) があるデータのインポートはサポートされない信号値の列の空のセルおよび数値エラーを含むセルは欠損データとして扱われる
Inf 値や NaN 値を含むデータをシミュレーション データ インスペクターから Excel にエクスポートするときは、次のようになります。
NaN値はシミュレーション データ インスペクターによって削除され、それらのセルはエクスポートされたスプレッドシートでは空になる。Infは Excel では数値としてネイティブでサポートされていないため、Infのデータは Excel ソフトウェアのバージョンに応じてエラー コードまたは数値65535のいずれかに Excel によって変換される。
複数の時間ベクトル
データにさまざまな時間ベクトルをもつ信号が含まれている場合は、ファイルに複数の時間ベクトルを含めることができます。すべての時間列の名前を time にしなければなりません。時間列は、次の時間ベクトルまで右側の信号に対するサンプル時間を指定します。たとえば、時間列は最初に signal1 と signal2 の時間を定義し、2 番目に signal3 のタイム ステップを定義します。

信号列は、関連付けられた時間ベクトルと同じ数のデータ点がなければなりません。
信号メタデータ
ファイルには、データ型、単位、内挿法などの信号のメタデータを含めることができます。シミュレーション データ インスペクターはメタデータを使用して、データのプロット方法、単位およびデータ変換の適用方法、比較結果の計算方法を決定します。メタデータが比較でどのように使用されるかの詳細については、シミュレーション データ インスペクターでデータを比較する方法を参照してください。
信号名と信号データの間の行で、各信号のメタデータを任意に組み合わせて指定できます。指定されているメタデータが少ない信号については、セルを空白のままにします。

以下の表に従って各メタデータにラベル付けします。表には、各メタデータをサポートするツールと操作も示します。インポートされたファイルで信号メタデータが指定されていない場合、シミュレーション データ インスペクターは、double データ型、zoh (ゼロ次ホールド) 内挿、および union 同期を使用します。
| 信号プロパティ | ラベル | 値 | シミュレーション データ インスペクターでのインポート | Record ブロックのログおよびシミュレーション データ インスペクターでのエクスポート | Simulink Test でのインポートとエクスポート |
|---|---|---|---|---|---|
| データ型 | Type: | 組み込みデータ型。 | サポートあり | サポートあり | サポートあり |
| 単位 | Unit: | サポートされる単位。たとえば、 サポートされている単位のリストについては、MATLAB® コマンド ラインで | サポートあり | サポートあり | サポートあり |
| 内挿法 | Interp: | linear、zoh (ゼロ次ホールド)、または none。 | サポートあり | サポートあり | サポートあり |
| 同期メソッド | Sync: | union または intersection。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| 相対許容誤差 | RelTol: | 小数で表されるパーセンテージ。たとえば、RelTol: 0.1 は 10% の相対許容誤差を指定します。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| 絶対許容誤差 | AbsTol: | 数値。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| 時間の許容誤差 | TimeTol: | 数値 (秒数)。 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| リード許容誤差 | LeadingTol: | 数値 (秒数)。 | サポートあり "Simulink Test にのみ表示できます"。 | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| ラグ許容誤差 | LaggingTol: | 数値 (秒数)。 | サポートあり "Simulink Test にのみ表示できます"。 | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
| ブロック パス | BlockPath: | 信号を生成したブロックへのパス。 | サポートあり | サポートあり | サポートあり |
| 端子インデックス | PortIndex: | 整数。 | サポートあり | サポートあり | サポートあり |
| 名前 | Name: | 信号名 | サポートあり | サポートなし "エクスポートされたファイルにメタデータは含まれません。" | サポートあり |
ユーザー定義データ型
組み込みのデータ型に加え、DataType: ラベルの代わりに他のラベルを使用して、固定小数点データ型、列挙データ型、エイリアス データ型、およびバスデータ型を指定できます。
| データ型 | ラベル | 値 | シミュレーション データ インスペクターでのインポート | Record ブロックのログおよびシミュレーション データ インスペクターでのエクスポート | Simulink Test でのインポートとエクスポート |
|---|---|---|---|---|---|
| 列挙 | Enum: | 列挙クラスの名前。 | サポートあり "列挙クラス定義は MATLAB パス上に保存しなければなりません。" | サポートあり "列挙クラス定義は MATLAB パス上に保存しなければなりません。" | サポートあり "列挙クラス定義は MATLAB パス上に保存しなければなりません。" |
| エイリアス | Alias: | MATLAB ワークスペースでの | サポートあり "行列または複素信号の場合は、最初のチャネルでエイリアス データ型を指定します。" | サポートなし | サポートあり "行列または複素信号の場合は、最初のチャネルでエイリアス データ型を指定します。" |
| 固定小数点 | Fixdt: |
| サポートあり | サポートなし | サポートあり |
| バス | Bus: | MATLAB ワークスペースでの | サポートあり | サポートなし | サポートあり |
Simulink.Bus オブジェクトの名前を使用して型を指定し、オブジェクトが MATLAB ワークスペース内にない場合でも、データはファイルからインポートされます。ただし、バス内の個々の信号は、Simulink.Bus オブジェクトで定義されたデータ型ではなく、ファイルに記述されたデータ型を使用します。
複素信号、多次元信号、バス信号
Excel ファイルを使用して、複素信号、多次元信号、バス信号をインポートおよびエクスポートできます。データの列の信号名は、そのデータが複素数、多次元、またはバスの一部であるかを示します。Excel ファイルのインポートとエクスポートでは、バスの配列はサポートされません。
メモ
可変サイズの信号をもつ非バーチャル バスのデータを Excel ファイルにエクスポートする場合は、可変サイズの信号データが個々のチャネルに展開され、データの階層構造は失われます。このファイルからインポートしたデータはフラット リストとして返されます。
多次元信号名には、小かっこで囲まれたインデックス情報が含まれます。たとえば、列の信号名は signal1(2,3) などになります。多次元信号データを含むファイルからデータをインポートすると、シミュレーション データ インスペクターでは、ファイルに含まれていない要素にゼロのサンプル値が代入され、データ型と実数/複素数はその他の要素と同じになります。
複素信号のデータは常に実数-虚数形式を取ります。複素信号データを含む列の信号名には、各列に含まれるデータを示す (real) および (imag) が含まれます。虚数の信号データを含むファイルからデータをインポートするとき、信号の実数成分の値が指定されていなければ、実数成分の信号値は既定でゼロになります。
多次元信号は、複素数データを含むことができます。信号名には、多次元信号内のインデックスと実数または虚数のタグを示す指標が含まれます。たとえば、signal1(1,3)(real) のようになります。
信号名に含まれるドットは、バスの階層を指定します。以下に例を示します。
bus.y.abus.y.bbus.x

ヒント
信号の名前に含まれる文字が、行列、複素信号、またはバスの一部であるかのように表示される場合、Name メタデータ オプションを使用して、Playback ブロック、シミュレーション データ インスペクター、および Simulink Test で使用するためにインポートした信号に名前を指定します。
関数呼び出し信号
最初の時間列の前に列で指定された信号データは、1 つ以上の関数呼び出し信号としてインポートされます。列のデータは、関数呼び出し信号が有効になった時間を指定します。インポートされた信号には、列で指定された時間を表す 1 の値があります。関数呼び出し信号の時間値は double、スカラー、および real でなければならず、単調に増加しなければなりません。
シミュレーション データ インスペクターからデータをエクスポートすると、関数呼び出し信号では、時間列と信号値の列を含む、他の信号と同じ形式が使用されます。
シミュレーション パラメーター
シミュレーションで使用されるパラメーター値のデータをインポートおよびエクスポートできます。Playback ブロックおよびシミュレーション データ インスペクターでは、パラメーター値は信号として表示されます。Simulink Test は、インポートされたパラメーター値を使用して、インポート データに基づいて実行されるテストでそれらのパラメーターの値を指定します。
2 つの列を使用して各パラメーターを指定します。1 つ目の列は時間値を指定し、ヘッダー セルには time というラベルが付いています。2 つ目の列は各タイム ステップのパラメーター値を指定し、ヘッダー セルにはパラメーター名のラベルが付いています。2 つ目の列には、各パラメーターに関連付けられたメタデータを含む行を含めることもできます。メタデータまたはパラメーター名の下に Domain: Parameters というラベルが付いた行を含め、その後にパラメーター値を続けます。たとえば、次のファイルでは、時間の経過とともに変化する 2 つのパラメーター X および Y の値を指定しています。

Simulink Test から Microsoft Excel ファイルにデータをインポートおよびエクスポートする場合、パラメーター データは 2 列の形式を使用します。Parameter: というラベルが付いた 1 つ目の列では、パラメーター名を指定します。Value: というラベルが付いた 2 つ目の列では、各パラメーターの値を指定します。各行はパラメーターとその値に対応しています。詳細については、テスト ケースで使用する外部データ ファイルの作成 (Simulink Test)を参照してください。
R2026b より前: シミュレーション データ インスペクターで、シミュレーション パラメーター データが Simulink Test と同じ形式でエクスポートされました。シミュレーション データ インスペクターは、その形式のファイルをインポートするための下位互換性を維持しています。
複数の実行
単一のファイルに複数の実行のデータを含めることができます。シート内で、データにシミュレーション番号と Input または Output などのソース タイプのラベルを付けて、データを実行に分割できます。シミュレーション番号にラベル Simulation: およびソース タイプにラベル Source: を使用して、シミュレーション番号とソース タイプを追加の信号メタデータとして指定します。Playback ブロックおよびシミュレーション データ インスペクターは、どの信号が各実行に属するのかを判定するためにのみ、シミュレーション番号とソース タイプを使用します。Simulink Test はこの情報を使用して、インポート データに基づいて実行されるテストの入力、パラメーター、および受入基準を定義します。
すべての信号のシミュレーション番号と出力タイプを指定する必要はありません。シミュレーション番号とソースをもつ信号の右側にある信号は、別のソースまたはシミュレーション番号をもつ次の信号まで同じシミュレーション番号とソースを使用します。たとえば、このファイルでは、2 つのシミュレーション用のデータを定義し、シミュレーション データ インスペクターの 4 つの実行にインポートします。
[実行 1] には
signal1とsignal2が含まれます。[実行 2] には
signal3、X、およびYが含まれます。[実行 3] には
signal4が含まれます。[実行 4] には
signal5が含まれます。

Microsoft Excel ファイル内のシートを使用して、データを実行とテストに分割することもできます。シミュレーション番号とソース情報を指定しない場合、各シート上のデータがシミュレーション データ インスペクターまたは Playback ブロックの個々の実行にインポートされます。シミュレーション データ インスペクターから複数の実行をエクスポートすると、各実行のデータが個別のシートに保存されます。複数のシートにデータがある Microsoft Excel ファイルを Simulink Test にインポートすると、Simulink Test で各シートに対して反復が作成されます。
参考
Simulink.sdi.createRun | Simulink.sdi.exportRun