このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
From Spreadsheet
スプレッドシートからのデータの読み取り
ライブラリ:
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 ブロックは、Nan
、Inf
、-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 ブロックのアクション |
---|---|
重複するタイム スタンプの前 | タイム スタンプが異なる場合と同じアクションを実行する。最初の重複するタイム スタンプ値を内挿の基礎として使用する(この例では、タイム スタンプの値は |
重複するタイム スタンプと同じ位置かその後 | タイム スタンプが異なる場合と同じアクションを実行する。最後の重複するタイム スタンプ値を内挿の基礎として使用する(この例では、そのタイム スタンプの値は |
COM を使用した読み取りの問題
既定では、From Spreadsheet ブロックによるスプレッドシートの読み取りには、Windows プラットフォームではコンポーネント オブジェクト モデル (COM) インターフェイス、その他のプラットフォームでは LibXL ライブラリが使用されます。Windows での From Spreadsheet ブロックによるスプレッドシートの読み取りで問題が発生する場合は、関数 set_param
を使用して 'ReaderLibrary'
を 'LibXL'
に設定してください。次に例を示します。
set_param(blockPath,‘ReaderLibrary’,‘LibXL’);
ここで、blockPath はモデルのブロック パスです。