Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

From Spreadsheet

スプレッドシートからのデータの読み取り

  • From Spreadsheet block

ライブラリ:
Simulink / Sources

説明

From Spreadsheet ブロックは、Microsoft® Excel® (すべてのプラットフォーム) または CSV (Microsoft Office がインストールされた Microsoft Windows® プラットフォームのみ) のスプレッドシートからデータを読み取り、データを信号として出力します。From Spreadsheet ブロックでは Microsoft Excel スプレッドシートのチャートはサポートされません。

From Spreadsheet アイコンには、ブロックの [ファイル名] および [シート名] パラメーターで指定されたスプレッドシートのファイル名とシート名が表示されます。

格納形式

From Spreadsheet ブロックがスプレッドシートから読み取るデータは、適切な形式でなければなりません。

Microsoft Excel スプレッドシートの場合

  • From Spreadsheet ブロックは最初の行を信号名と解釈します。信号名を指定しないと、From Spreadsheet ブロックは Signal # の形式の既定の信号名を割り当てます。ここで # は、無名の信号が追加されるたびにインクリメントする値です。

  • From Spreadsheet ブロックは、最初の列を時間として解釈します。この列では、時間値が単調増加しなければなりません。

  • From Spreadsheet ブロックは、残りの列を信号として解釈します。

この例は、正しい形式の Microsoft Excel スプレッドシートを示しています。最初の列は時間で、1 行目には信号名が含まれます。各ワークシートに 1 つの信号グループが含まれます。

CSV テキスト ファイルの場合 (Microsoft Office のみがインストールされた Microsoft プラットフォーム):

  • From Spreadsheet ブロックは、最初の列を時間として解釈します。この列では、時間値が増加しなければなりません。

  • From Spreadsheet ブロックは、残りの列を信号として解釈します。

  • 各列には、同じ数の項目が含まれなければなりません。

  • From Spreadsheet ブロックは、各ファイルを 1 つの信号グループとして解釈します。

この例は、正しい形式の CSV ファイルを示しています。内容は 1 つの信号グループを表しています。

0,0,0,5,0
1,0,1,5,0
2,0,1,5,0
3,0,1,5,0
4,5,1,5,0
5,5,1,5,0
6,5,1,5,0
7,0,1,5,0
8,0,1,5,1
9,0,1,5,1
10,0,1,5,0

From Spreadsheet ブロックは、NanInf-Inf などの非有限データの信号値を受け入れません。

シミュレーション時のブロックの動作

From Spreadsheet ブロックは、シミュレーション中にスプレッドシートからデータをインクリメンタルに読み取ります。

[サンプル時間] パラメーターは、From Spreadsheet ブロックがスプレッドシートからデータを読み取るために使用するサンプル時間を指定します。詳細については、パラメーターを参照してください。ファイルのタイム スタンプは単調非減少でなければなりません。

一致するタイム スタンプがスプレッドシートに含まれないシミュレーション時間ヒットごとに Simulink® ソフトウェアによって内挿または外挿が行われ、選択した方法を使って必要なデータが得られます。詳細については、対応するスプレッドシート タイム スタンプがない場合のシミュレーション時間ヒットを参照してください。

対応するスプレッドシート タイム スタンプがない場合のシミュレーション時間ヒット

シミュレーション時間ヒットに対応するスプレッドシートのタイム スタンプがない場合、From Spreadsheet ブロックの出力は次の条件によって異なります。

  • シミュレーション時間ヒットが最初のタイム スタンプより前、最初と最後のタイム スタンプの間、最後のタイム スタンプより後のいずれであるか

  • 選択した内挿法または外挿法

  • スプレッドシート データのデータ型

内挿オプションおよび外挿オプションの詳細については、次のパラメーターの説明を参照してください。

スプレッドシートで 2 つ以上のデータ値が同一のタイム スタンプになることがあります。そのような場合、From Spreadsheet ブロックのアクションはスプレッドシートの重複するタイム スタンプに対するシミュレーション時間ヒットのタイミングで決まります。

たとえば、スプレッドシートに次のデータが含まれているとします。3 つのデータ値に、2 のタイム スタンプ値が含まれています。

time stamps:    0 1 2 2 2 3 4
data values:    2 3 6 4 9 1 5

次の表で、From Spreadsheet ブロックの出力を説明します。

シミュレーション時間、スプレッドシートでの重複するタイム スタンプとの位置関係From Spreadsheet ブロックのアクション
重複するタイム スタンプの前

タイム スタンプが異なる場合と同じアクションを実行する。最初の重複するタイム スタンプ値を内挿の基礎として使用する(この例では、タイム スタンプの値は 6)。

重複するタイム スタンプと同じ位置かその後

タイム スタンプが異なる場合と同じアクションを実行する。最後の重複するタイム スタンプ値を内挿の基礎として使用する(この例では、そのタイム スタンプの値は 9)。

COM を使用した読み取りの問題

既定では、From Spreadsheet ブロックによるスプレッドシートの読み取りには、Windows プラットフォームではコンポーネント オブジェクト モデル (COM) インターフェイス、その他のプラットフォームでは LibXL ライブラリが使用されます。Windows での From Spreadsheet ブロックによるスプレッドシートの読み取りで問題が発生する場合は、関数 set_param を使用して 'ReaderLibrary''LibXL' に設定してください。次に例を示します。

set_param(blockPath,‘ReaderLibrary’,‘LibXL’);

ここで、blockPath はモデルのブロック パスです。

端子

出力

すべて展開する

指定したスプレッドシートからのインクリメンタルなデータ。

[サンプル時間] パラメーターは、From Spreadsheet ブロックがスプレッドシートからデータを読み取るために使用するサンプル時間を指定します。詳細については、パラメーターを参照してください。ファイルのタイム スタンプは単調非減少でなければなりません。

一致するタイム スタンプがスプレッドシートに含まれないシミュレーション時間ヒットごとに Simulink ソフトウェアによって内挿または外挿が行われ、選択した方法を使って必要なデータが得られます。詳細については、対応するスプレッドシート タイム スタンプがない場合のシミュレーション時間ヒットを参照してください。

From Spreadsheet ブロックは、ブロック レベルでのデータ型の指定を受け入れます。信号ごとに異なるデータ型を指定する場合は、[出力データ型][Inherit: auto] を選択することを検討してください。このオプションでは、逆伝播を使用して信号のデータ型を元に戻します。たとえば、From Spreadsheet ブロック内に In1 と In2 の 2 つの信号があり、このブロックが int8 データ型と Boolean データ型をもつ端子にその信号を送信するとします。逆伝播により、ブロックは In1 を int8 として、In2 を Boolean として再キャストします。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated

パラメーター

すべて展開する

スプレッドシート ファイルの絶対パスとファイル名を、拡張子を含めて入力します。メモ:

  • ブロックは、絶対パスでファイルが見つからない場合、現在の作業フォルダーでファイルを検索します。

  • ファイル拡張子を含めないと、ブロックは拡張子を .xlsx と仮定します。

このブロックは、Microsoft プラットフォームでのみ英語以外の絶対パスとファイル名をサポートします。

プログラムでの使用

ブロック パラメーター: FileName
: 文字ベクトル
: 絶対パスとファイル名
既定の設定: 'untitled.xlsx'

スプレッドシートにシートの名前を入力します。このエディット ボックスにシート名を入力するか、シートを開いてからシート名を選択します。

スプレッドシートが CSV 形式である場合、ブロックによってこのパラメーターに CSV ファイルの名前 (拡張子なし) が設定されます。この値は変更しないでください。

シートを開くには、 をクリックします。シートでは、目的の値の範囲をドラッグしてデータの範囲を選択できます。

あるいは、[範囲] パラメーターで値の範囲を指定して、データの範囲を選択できます。

プログラムでの使用

ブロック パラメーター: SheetName
: 文字ベクトル
: シート名
既定の設定: 'Sheet1'

範囲を指定するには、形式 column:row を使用して、複数の指定をコンマで区切ります。たとえば、A1:B3,D1:D3,A7:B9,D7:D9 とします。指定しない場合、または空の場合、ブロックは使用されている範囲、すなわちシート内のすべてのデータを自動的に検出します。

選択がオーバーラップする場合、ブロックは選択情報を適切に解決します。たとえば、A1:B4,B1:E7 のようにオーバーラップする複数の範囲を指定している場合、ブロックは A1 から E7 までの選択 (A1 と E7 も含む) と解決します。

[選択/履歴] にはこのセッション中に選択した範囲のリストが含まれます。[範囲の選択] を閉じた後、ブロックでは範囲が保存されません。

[範囲] パラメーターの使用に代わる代替方法は、 をクリックしてシートを開くことです。シートでは、目的の値の範囲をドラッグしてデータの範囲を選択できます。範囲の選択は [範囲] パラメーター テキスト ボックスに反映されます。

ブロック ダイアログスから新しい範囲を適用するには、[適用] をクリックします。

プログラムでの使用

ブロック パラメーター: Range
: 文字ベクトル
: シート内で使用されているセルの全範囲 | column:row のコンマ区切りリスト
既定の設定: ''

From Spreadsheet ブロック出力のデータ型。From Spreadsheet ブロックは、多くのデータ型を含むスプレッドシートを受け入れます。ただし、ブロックはスプレッドシートのデータ型を double として読み取ります。その後、[出力データ型] の値に従ってデータ型を出力します。

信号ごとに異なるデータ型を指定する場合は、[出力データ型][Inherit: auto]を選択することを検討してください。このオプションでは、逆伝播を使用して信号のデータ型を元に戻します。たとえば、From Spreadsheet ブロック内に In1 と In2 の 2 つの信号があり、このブロックが int8 データ型と Boolean データ型をもつ端子にその信号を送信するとします。逆伝播により、ブロックは In1 を int8 として、In2 を boolean として再キャストします。

ブロックが受信ブロックの出力データ型と一致するように出力データ型のキャストを可能にするには、[Inherit: auto] を使用します。

詳細については、信号のデータ型の制御を参照してください。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
: 文字ベクトル
: 'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | '<data type expression>'
既定の設定: 'Inherit: auto'

スプレッドシートの最初の列をブロックでどのように扱うかを選択します。

  • 時間 — 最初の列を時間として扱います。

  • データ —最初の列をデータとして扱います。

依存関係

[データ] を選択すると、このブロックでは次が無効になります。

  • 最初のデータ点前のデータ外挿

  • 時間範囲内のデータ内挿

  • 最後のデータ点後のデータ外挿

また、次が有効になります。

  • 最後のデータ点後の出力

プログラムでの使用

ブロック パラメーター: TreatFirstColumnAs
: 文字ベクトル
: 'Time' | 'Data'
既定の設定: 'Time'

サンプリング周期とオフセット。

From Spreadsheet ブロックは、次のいずれかのサンプル時間を使用してスプレッドシートからデータを読み取ります。

  • From Spreadsheet ブロックに対して指定したサンプル時間

  • From Spreadsheet ブロックがデータのフィード先のブロックから継承したサンプル時間

既定値は 0 で、これは連続サンプル時間の指定となります。スプレッドシートはモデルの基本レート (最速) で読み取られます。詳細については、サンプル時間の指定を参照してください。

プログラムでの使用

パラメーター: SampleTime
型: 文字ベクトル
値: スカラー | ベクトル
既定の設定: '0'

Simulink がスプレッドシートの最初のタイム スタンプ前のシミュレーション時間ヒットに使用する外挿法。次のいずれかの外挿法を選択します。

メソッド説明
線形外挿

(既定)

スプレッドシートにサンプルが 1 つしか含まれていない場合、From Spreadsheet ブロックは対応するデータ値を出力します。

スプレッドシートに 1 つを超えるサンプルが含まれる場合、From Spreadsheet ブロックは最初の 2 つのサンプルを使用して次のように線形外挿を実行します。

  • double データの場合、最初の 2 つのサンプルを使用して値を線形外挿します

  • Boolean データの場合、最初のデータ値を出力します

  • double または Boolean 以外の組み込みデータ型の場合は次のようになります。

    • データを double にアップキャストする

    • 線形外挿を実行する (double データの説明を参照)

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

列挙型 (enum) データでは、[線形外挿] オプションは使用できません。

最初の値をホールド

ファイル内の最初のデータ値を使用します

グラウンド値

スプレッドシートのサンプル データ値のデータ型によって異なる値を使用します。

  • 固定小数点データ型 — グラウンド値を使用します

  • 固定小数点以外の数値型 — 0 を使用します

  • Booleanfalse を使用します

  • 列挙データ型 — 既定値を使用します

依存関係

このパラメーターを有効にするには、[最初の列の扱い][時間] に設定します。

プログラムでの使用

パラメーター: ExtrapolationBeforeFirstDataPoint
型: 文字ベクトル
値: 'Linear extrapolation' | 'Hold first value' | 'Ground value'
既定の設定: 'Linear extrapolation'

Simulink がスプレッドシートの 2 つのタイム スタンプ間のシミュレーション時間ヒットに使用する内挿法。次の内挿法のいずれかを選択します。

メソッド説明
線形内挿

(既定)

From Spreadsheet ブロックは、2 つの対応するスプレッドシート サンプルを使用して内挿します。

  • double データの場合、2 つの対応するサンプルを使用して値を線形内挿します

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

  • double または Boolean 以外の組み込みデータ型の場合は次のようになります。

    • データを double にアップキャストする

    • 線形内挿を実行する (double データの説明を参照)

    • 内挿値を元のデータ型にダウンキャストする

列挙型 (enum) データでは、[線形内挿] オプションは使用できません。

ゼロ次ホールド

2 つのサンプルのうち最初のサンプルのデータを使用します

依存関係

このパラメーターを有効にするには、[最初の列の扱い][時間] に設定します。

プログラムでの使用

パラメーター: InterpolationWithinTimeRange
型: 文字ベクトル
値: 'Linear interpolation' | 'Zero order hold'
既定の設定: 'Linear interpolation'

Simulink がスプレッドシートの最後のタイム スタンプ後のシミュレーション時間ヒットに使用する外挿法。次の外挿法のいずれかを選択します。

メソッド説明
線形外挿

(既定)

スプレッドシートにサンプルが 1 つしか含まれていない場合、From Spreadsheet ブロックは対応するデータ値を出力します。

スプレッドシートに 1 つを超えるサンプルが含まれる場合、From Spreadsheet ブロックは最後の 2 つのサンプルのデータ値を使用して線形外挿を実行します。

  • double データの場合、最後の 2 つのサンプルを使用して値を線形外挿します

  • Boolean データの場合、最後のデータ値を出力します

  • double または Boolean 以外の組み込みデータ型の場合は次のようになります。

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

    • 線形外挿を実行する (double データの説明を参照)。

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

列挙型 (enum) データでは、[線形外挿] オプションは使用できません。

最後の値をホールド

ファイル内の最後のデータ値を使用します

グラウンド値

スプレッドシートのサンプル データ値のデータ型によって異なる値を使用します。

  • 固定小数点データ型 — グラウンド値を使用します

  • 固定小数点以外の数値型 — 0 を使用します

  • Booleanfalse を使用します

  • 列挙データ型 — 既定値を使用します

依存関係

このパラメーターを有効にするには、[最初の列の扱い][時間] に設定します。

プログラムでの使用

パラメーター: ExtrapolationAfterLastDataPoint
型: 文字ベクトル
値: 'Linear extrapolation' | 'Hold last value' | 'Ground value'
既定の設定: 'Linear extrapolation'

最後のデータ点後のアクションを選択します。

  • 反復列[範囲] で指定した範囲の最初の行からデータを読み取ることで、シーケンスを繰り返します。

  • 最終値をホールド — 残りのシミュレーションで最後に定義した値を出力します。

  • グラウンド値[出力データ型] で指定したデータ型の値に応じたグラウンド値を出力します。

依存関係

このパラメーターを有効にするには、[最初の列の扱い][データ] に設定します。

プログラムでの使用

パラメーター: OutputAfterLastPoint
型: 文字ベクトル
値: 'Repeating sequence' | 'Hold final value' | 'Ground value'
既定の設定: 'Repeating sequence'

ゼロクロッシング検出を有効にする場合は選択します。

ゼロクロッシング検出パラメーターは、サンプル時間 パラメーターが 0 (連続) に設定されている場合のみ適用されます。

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

Simulink はゼロクロッシング検出という手法を使用して、過度に小さいタイム ステップを取ることなくタイム スタンプの不連続点を特定します。このコンテキストでは、ゼロクロッシングは不連続点を表すために使用されます。

From Spreadsheet ブロックの場合、ゼロクロッシング検出はファイル内のタイム スタンプのみで発生します。Simulink はタイム スタンプのみを調べ、データ値は調べません。

入力配列に重複するタイム スタンプが含まれている (同一のタイム スタンプのエントリが 1 つを超える) 場合、Simulink はそのタイム スタンプのゼロクロッシングを検出します。たとえば、入力配列に次のようなデータがあるとします。

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

時間 2 に入力信号の不連続によるゼロクロッシングがあります。

重複しないタイム スタンプのあるデータの場合、ゼロクロッシング検出は次のパラメーターの設定によって変わります。

  • 最初のデータ点前のデータ外挿

  • 時間範囲内のデータ内挿

  • 最後のデータ点後のデータ外挿

ブロックはゼロクロッシングが発生するタイミングを決定する際に以下のルールを適用します。

  • 最初のタイム スタンプの場合

  • 最初と最後のタイム スタンプの間のタイム スタンプの場合

  • 最後のタイム スタンプの場合

タイム スタンプゼロクロッシング検出が発生するタイミング

1 次

[最初のデータ点前のデータ外挿][グラウンド値] に設定されます。

最初と最後の間

[時間範囲内のデータ内挿][ゼロ次ホールド] に設定されます。

最後

次の設定の両方またはどちらかが発生します。

  • [最後のデータ点後のデータ外挿][グラウンド値] に設定されます。

  • [時間範囲内のデータ内挿][ゼロ次ホールド] に設定されます。

次の図は、次の設定になっている From Spreadsheet ブロックによってアクセスされるデータのゼロクロッシング検出を示しています。

  • 最初のデータ点前のデータ外挿線形外挿

  • 時間範囲内のデータ内挿 (内部点の場合) — ゼロ次ホールド

  • 最後のデータ点後のデータ外挿線形外挿

次の図は、From Spreadsheet ブロックによってアクセスされるデータのゼロクロッシング検出を示しています。ブロックには、タイム スタンプ (点) 用の次の設定があります。

  • 最初のデータ点前のデータ外挿最初の値をホールド

  • 時間範囲内のデータ内挿ゼロ次ホールド

  • 最後のデータ点後のデータ外挿最後の値をホールド

プログラムでの使用

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

指定するデータのカテゴリを選択します。詳細については、信号のデータ型の制御を参照してください。

  • 継承

    データ型の規則の継承。継承 を選択すると、右側にある 2 番目のメニュー/テキスト ボックスが有効になります。

  • 組み込み

    組み込みのデータ型。組み込み を選択すると、右側にある 2 番目のメニュー/テキスト ボックスが有効になります。以下の選択肢のいずれかを選択します。

    • double — 既定値

    • single

    • int8

    • uint8

    • int16

    • uint16

    • int32

    • uint32

    • int64

    • uint64

    • boolean

  • 固定小数点 — 固定小数点データ型。

  • 列挙型 — 列挙型のデータ型。列挙型 を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこにクラス名を入力することができます。

  • — データ型に評価する式。[式] を選択すると、右側から 2 番目のメニュー/テキスト ボックスが有効になります。そこに式を入力します。

この信号のデータ型オーバーライド モードを選択します。

  • [継承] を選択すると、Simulink はコンテキストからデータ型オーバーライド設定を継承します。コンテキストとはブロックのことで、信号を使用している Simulink の Simulink.Signal オブジェクトまたは Stateflow® チャートです。

  • [オフ] を選択すると、Simulink はコンテキストのデータ型オーバーライド設定を無視し、信号に対して指定された固定小数点データ型を使用します。

詳細については、Simulink ドキュメンテーションのデータ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][組み込み] または [固定小数点] に設定します。

ヒント

個々のデータ型に対してデータ型オーバーライドをオフにする機能により、データ型オーバーライドを適用する際に、モデル内のデータ型をさらに効果的に制御できます。たとえば、このオプションを使用すると、データ型オーバーライド設定にかかわらず、データ型が下流ブロックの要件を満たすことを確認できます。

固定小数点データが符号付きであるか符号なしであるかを指定します。符号付きデータでは正の値と負の値を表現できますが、符号なしデータでは正の値のみを表現できます。

  • [符号付き]。符号付き固定小数点データを指定します。

  • [符号なし]。符号なし固定小数点データを指定します。

詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード] を [Fixed point] に設定します。

オーバーフローを避け、量子化誤差を最小限に抑えるための固定小数点データのスケーリング方法を指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][固定小数点] に設定します。

[スケーリング][2 進小数点] に設定すると、以下のことが可能です。

  • 小数部の長さ

  • 最高精度のスケーリングを計算

[スケーリング][勾配とバイアス] に設定すると、以下のことが可能です。

  • 勾配

  • バイアス

  • 最高精度のスケーリングを計算

量子化された整数をもつ語のビット サイズを指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[モード][固定小数点] に設定します。

固定小数点データ型の小数部の長さを正または負の整数として指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[スケーリング][2 進小数点] に設定します。

固定小数点データ型の勾配を指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[スケーリング][勾配とバイアス] に設定します。

固定小数点データ型のバイアスを任意の実数として指定します。詳細については、固定小数点データ型の指定を参照してください。

依存関係

このパラメーターを有効にするには、[スケーリング][勾配とバイアス] に設定します。

ブロックの特性

データ型

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

直達

いいえ

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

はい

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

アルゴリズム

すべて展開する

From Spreadsheet ブロックがスプレッドシートからデータを読み取る際、すべての信号が倍精度で読み取られ、[出力データ型] パラメーターで指定された出力信号のデータ型にキャストされます。キャスト中に、ブロックは次で説明する丸めモードと整数オーバーフローでの飽和を使用します。

拡張機能

バージョン履歴

R2015b で導入

すべて展開する