Main Content

importFromBaseWorkspace

ベース ワークスペースの変数をデータ ディクショナリにインポート

説明

importedVars = importFromBaseWorkspace(dictionaryObj) は、MATLAB ベース ワークスペースからデータ ディクショナリ dictionaryObj にすべての変数をインポートします。ディクショナリの既存のエントリは上書きされません。ベース ワークスペースのいずれかの変数が既にディクショナリに含まれている場合、この関数は警告とリストを表示します。

この構文では、正常にインポートされた変数の名前のリストが返されます。変数が正常にインポートされたと見なされるのは、importFromBaseWorkspace でターゲットのデータ ディクショナリの対応するエントリに変数の値が代入されたときだけです。

importedVars = importFromBaseWorkspace(dictionaryObj,Name,Value) は、1 つ以上の Name,Value のペアの引数で指定された追加オプションを使用してベース ワークスペースの変数をデータ ディクショナリにインポートします。

[importedVars,existingVars] = importFromBaseWorkspace(___) は、上書きされなかった変数のリストも返します。この構文は、existingVarsAction'none' (既定値) に設定した場合に使用します。この値に設定した場合、ディクショナリの既存のエントリは上書きされません。

さらに、[importedVars,existingVars,unsupportedVars] = importFromBaseWorkspace(___) は、インポートされなかったサポートされていない変数のリストを返します。ベース ワークスペースにサポートされていない変数がある場合、この関数を unsupportedVars 出力引数なしで呼び出すと、Simulink® によって警告がレポートされます。

すべて折りたたむ

MATLAB ベース ワークスペースで、インポートする変数を作成します。

a = 'Char Variable';
myVariable = true;
fuelFlow = 324;

データ ディクショナリ myDictionary_ex_API.sldd を開き、myDictionaryObj という名前の Simulink.data.Dictionary オブジェクトで表します。

myDictionaryObj = Simulink.data.dictionary.open('myDictionary_ex_API.sldd');

ベース ワークスペースのすべての変数をデータ ディクショナリにインポートし、正常にインポートされた変数のリストを返します。ベース ワークスペースのいずれかの変数が myDictionary_ex_API.sldd に既に含まれている場合、importFromBaseWorkspace は警告と影響があった変数のリストを返します。

importFromBaseWorkspace(myDictionaryObj);
Warning: The following variables were not imported because 
they already exist in the dictionary:
   fuelFlow 

MATLAB ベース ワークスペースで、インポートする変数を作成します。

b = 'Char Variable';
mySecondVariable = true;
airFlow = 324;

データ ディクショナリ myDictionary_ex_API.sldd を開き、myDictionaryObj という名前の Simulink.data.Dictionary オブジェクトで表します。

myDictionaryObj = Simulink.data.dictionary.open('myDictionary_ex_API.sldd');

ベース ワークスペースの新しい変数だけをデータ ディクショナリにインポートします。

importFromBaseWorkspace(myDictionaryObj,'varList',...
{'b','mySecondVariable','airFlow'});

MATLAB ベース ワークスペースで、インポートする変数を作成します。

fuelFlow = 324;

データ ディクショナリ myDictionary_ex_API.sldd を開き、myDictionaryObj という名前の Simulink.data.Dictionary オブジェクトで表します。myDictionary_ex_API.sldd には fuelFlow というエントリが既に含まれています。

myDictionaryObj = Simulink.data.dictionary.open('myDictionary_ex_API.sldd');

変数 fuelFlow をインポートし、myDictionary_ex_API.sldd の対応するエントリを上書きします。

importFromBaseWorkspace(myDictionaryObj,'varList',{'fuelFlow'},...
'existingVarsAction','overwrite');

importFromBaseWorkspace は、ベース ワークスペースの変数 fuelFlow の値を myDictionary_ex_API.sldd の対応するエントリの値として代入します。

ターゲットのデータ ディクショナリに既に含まれているために MATLAB ベース ワークスペースからインポートされなかった変数のリストを返します。

MATLAB ベース ワークスペースで、インポートする変数を作成します。

fuelFlow = 324;
myNewVariable = 'This is a character vector.'

データ ディクショナリ myDictionary_ex_API.sldd を開き、myDictionaryObj という名前の Simulink.data.Dictionary オブジェクトで表します。myDictionary_ex_API.sldd には fuelFlow というエントリが既に含まれています。

myDictionaryObj = Simulink.data.dictionary.open('myDictionary_ex_API.sldd');

変数 fuelFlow および myNewVariable をデータ ディクショナリにインポートします。importFromBaseWorkspace の出力引数の名前を指定して、正常にインポートされた変数と正常にインポートされなかった変数の名前を返します。

[importedVars,existingVars] = importFromBaseWorkspace(myDictionaryObj,...
'varList',{'fuelFlow','myNewVariable'})
importedVars = 

    'myNewVariable'


existingVars = 

    'fuelFlow'

変数 fuelflow はターゲットのデータ ディクショナリに既に含まれているため、importFromBaseWorkspace でインポートされません。

入力引数

すべて折りたたむ

ターゲットのデータ ディクショナリ。Simulink.data.Dictionary オブジェクトとして指定します。この関数を使用する前に、関数 Simulink.data.dictionary.create や関数 Simulink.data.dictionary.open を使用してターゲットのディクショナリを Simulink.data.Dictionary オブジェクトで表しておきます。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'varList',{'fuelFlow'}, 'existingVarsAction','overwrite' は変数 fuelFlow をインポートし、データ ディクショナリの対応するエントリを上書きします。

正常にインポートされた変数をベース ワークスペースからクリアするフラグ。'clearWorkspaceVars'true または false のいずれかの値で構成されるコンマ区切りのペアとして指定します。

例: 'clearWorkspaceVars',true

データ型: logical

ディクショナリの既存の変数に対するアクション。'existingVarsAction''none''error''overwrite' のいずれかの値で構成されるコンマ区切りのペアとして指定します。

'none' を指定した場合、importFromBaseWorkspace は、ターゲットの変数のインポートを試行しますが、データ ディクショナリに既に含まれている変数についてはインポートや変更を行いません。

'error' を指定した場合、importFromBaseWorkspace は、ターゲットのいずれかの変数がデータ ディクショナリに既に含まれていると、いずれの変数もインポートせずにエラーを返します。

'overwrite' を指定した場合、importFromBaseWorkspace は、ターゲットのすべての変数をインポートし、データ ディクショナリに既に含まれている変数については上書きします。

例: 'existingVarsAction','error'

データ型: char

インポートする特定のベース ワークスペースの変数の名前。'varList' と文字ベクトルの cell 配列または string 配列で構成されるコンマ区切りのペアとして指定します。変数を 1 つだけインポートする場合は、その名前を cell 配列内で指定します。'varList' を指定しない場合、importFromBaseWorkspace は MATLAB ベース ワークスペースからすべての変数をインポートします。

例: 'varList',{'a','myVariable','fuelFlow'}

例: 'varList',{'fuelFlow'}

データ型: cell

出力引数

すべて折りたたむ

正常にインポートされた変数の名前。文字ベクトルの cell 配列として返されます。変数が正常にインポートされたと見なされるのは、importFromBaseWorkspace でターゲットのデータ ディクショナリの対応するエントリに変数の値が代入されたときだけです。

ターゲットのデータ ディクショナリに既に含まれているためにインポートされなかったターゲットの変数の名前。文字ベクトルの cell 配列として返されます。existingVars の値は、'existingVarsAction''none' (既定値) に設定した場合にのみ返されます。この場合、importFromBaseWorkspace はターゲットのデータ ディクショナリに含まれていない変数のみをインポートします。

インポートされなかったサポートされていないターゲット変数の名前。文字ベクトルの cell 配列として返されます。サポートされていない変数がある場合に、この出力引数が関数に含まれていないと、Simulink によって警告がレポートされます。データ ディクショナリにインポートできる変数の型については、有効な設計データ クラスを参照してください。

ヒント

  • importFromBaseWorkspace でインポートできるのは、列挙データ型から作成された MATLAB 変数です。列挙型の定義はインポートできません。列挙データ型の定義をデータ ディクショナリにインポートするには関数 importEnumTypes を使用します。データ ディクショナリに列挙データ型の変数をインポートする場合は列挙型定義もインポートしないと、ディクショナリの移植性が低くなり、他のユーザーが使用した場合に適切に機能しないことがあります。

  • 変数の値が (データ ディクショナリでは保存できない) timeseries オブジェクトまたは timeseries オブジェクトと同一のフィールドをもつ構造体の場合、importFromBaseWorkspace は変数をインポートできません。

代替方法

  • Simulink エディターを使用してモデルをデータ ディクショナリにリンクするときに、ベース ワークスペースからモデル変数をインポートするかどうかを選択できます。詳細については、ディクショナリを使用する単一モデルの移行を参照してください。

  • また、モデル エクスプローラーのウィンドウで、ベース ワークスペースからデータ ディクショナリに変数をドラッグ アンド ドロップできます。

バージョン履歴

R2015a で導入