このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
モデル エクスプローラーを使用したワークスペース変数の編集と管理
ワークスペース変数の作成、編集および管理に使用できるすべての手法の詳細については、ワークスペース変数の作成、編集、管理を参照してください。
モデルやブロックで使用されている変数の検索
モデル エクスプローラーでは、モデルやブロックで使用されている変数のリストを取得できます。次のアプローチはその変数のリストを取得する方法の 1 つです。
[コンテンツ] ペインで、取得する変数を参照しているブロックを右クリックします。
[参照される変数の検索] メニュー項目を選択します。
モデル エクスプローラーは次のような結果を返します。
パフォーマンス上の配慮から、モデル エクスプローラーは最後にコンパイルされたモデルからキャッシュされている情報を使用します。モデルを再コンパイルするには、モデル エクスプローラー内で [ブロック線図の更新] フィールドを [yes]
に設定して検索を繰り返します。
モデルやブロックが参照している変数の検索には次のアプローチも使用できます。
モデル エクスプローラーの [モデル階層] ペインでブロックまたはモデル ノードを右クリックして、[参照される変数の検索] メニュー項目を選択します。
モデル エクスプローラーの検索バーで、検索の種類として
[参照された変数]
オプションを使用します。Simulink® エディターでブロック、サブシステムまたはキャンバス内を右クリックして、[参照される変数の検索] メニュー項目を選択します。キャンバスをクリックした場合はモデル全体に対する結果が返されます。
ワークスペース変数の情報を検索する関数 Simulink.findVars
には、モデル エクスプローラーや Simulink エディターが提供しない追加オプションがあります。
参照される変数を検索するときの制限については、Simulink.findVars
のドキュメンテーションを参照してください。
検索結果に表示される変数の利用
検索結果に表示される変数から、その変数を使用するブロックを検索できます (詳細は、特定の変数を使用するブロックの検索を参照)。検索結果に表示される変数をエクスポートすることもできます。詳細については、ワークスペース変数のエクスポートを参照してください。
特定の変数を使用するブロックの検索
この例では、モデル エクスプローラーを使って、特定のワークスペース変数を使用するブロックのリストを取得する方法を示します。
モデル
f14
を開きます。モデル エクスプローラーを開きます。
[モデルの階層構造] ペインで、
Base Workspace
ノードを選択します。[コンテンツ] ペインで、変数
Mq
を右クリックして、[使用されている場所を検索] を選択します。[システムを選択] ダイアログ ボックスで、
f14
を選択します。f14
はどのモデルも参照しないため、[参照モデルでの検索] チェック ボックスをオフにして、[OK] をクリックします。[参照モデルでの検索] をオンにすると、モデル参照階層で使用されているすべての場所のターゲット変数を検索できます。ただし、階層全体でターゲット変数を検索すると、時間がかかる可能性があります。
[ブロック線図を更新して最近の変更を含める] チェック ボックスは、不要なモデル ブロック線図の更新を避けて時間を節約するために、既定ではオフにされています。ブロック線図の更新を強制してモデルに対する最新の変更を取り込む場合は、このチェック ボックスをオンにします。
モデル ブロック線図を更新するメッセージに対して [OK] をクリックします。
モデルを開いたばかりであるため、変数を検索する前に少なくとも 1 回モデル ブロック線図を更新しなければなりません。[システムを選択] ダイアログ ボックスで [ブロック線図を更新して最近の変更を含める] をオンにして初期のダイアグラムの更新を強制的に行うことができますが、通常このオプションは、[使用されている場所を検索] で複数の検索を実行中にモデルを変更した場合に使用します。
モデル エクスプローラーには、以下のような検索結果が表示されます。
Mq
が値として含まれているプロパティ列がMq
変数を使用しているブロック パラメーターであることを示します。変数が含まれているプロパティ列がまだ表示されていない場合は、検索結果の表示で最後の列として追加されます。
以下のいずれかの方法で、特定の変数を使用するブロックを検索することができます。
検索バーで、検索の種類として
[変数の使用]
オプションを選択します。[検索結果] ペインで、変数を右クリックして、[使用されている場所を検出] メニュー項目を選択します。
モデル データ エディターで、ワークスペース変数を右クリックし、[使用されている場所の検索] メニュー項目を選択します。
未使用のワークスペース変数の検索
モデル エクスプローラーを使用して、ワークスペースに定義されているがモデルやブロックでは使われていない変数のリストを取得できます。その方法の 1 つは、[モデル階層] ペイン内でワークスペース名を右クリックして、[使用されない変数の検索] メニュー項目を選択する方法です。以下に例を示します。
f14
モデルを開きます。モデル エクスプローラーを開きます。
検索ツール バーで [ブロック線図の更新] フィールドを
[yes]
に設定します。[モデル階層] ペインで、
Base Workspace
ノードを右クリックして、[使用されない変数の検索] メニュー項目を選択します。モデル エクスプローラーは次のような出力を表示します。
未使用のワークスペース変数の情報を検索する関数
Simulink.findVars
には、モデル エクスプローラーや Simulink エディターが提供しない追加オプションがあります。
ワークスペース変数の編集
モデル エクスプローラーで変数エディターを使用して、MATLAB® ベース ワークスペースまたはモデル ワークスペースの変数を編集できます。変数エディターは、大規模な配列や構造体の編集に利用できます。
変数エディターを開くには次を行います。
[コンテンツ] ペインで変数を選択します。
[ダイアログ] ペイン (右ペイン) で、変数の値の近くの ボタンをクリックします。
メニューの [変数エディターを開く] を選択します。
または、[ダイアログ] ペインではなく [コンテンツ] ペインから変数エディターを開くには、該当するセルをクリックして変数の値の編集を開始します。セル内にボタンが表示されます。
3 次元以上を使用した配列の表現
変数または Simulink.Parameter
オブジェクトの値が 3 次元以上の配列の場合、[値] 列に関数 reshape
への呼び出しが含まれる式として配列が表示されます。
配列の値を編集するには、reshape
呼び出しの最初の引数を変更します。この引数には配列のすべての値がシリアル化されたベクトルとして含まれています。次元に沿って要素を追加または削除する場合、変更された次元の長さを表す引数も修正しなければなりません。
変数の名前の変更
この例では、モデル エクスプローラーを使用して Simulink モデルのブロックで使用されている、すべての場所の変数の名前を変更する方法を示します。
アンチロック ブレーキ システムのモデル化モデル例
sldemo_absbrake
を開きます。モデルにより、データが MATLAB ベース ワークスペースに読み込まれます。モデル エクスプローラーを開きます。
[モデルの階層構造] ペインで、ベース ワークスペースを選択します。
[コンテンツ] ペインで、ベース ワークスペース変数
m
を右クリックし、[すべての名前の変更] を選択します。[システムを選択] ダイアログ ボックスで、モデル
sldemo_absbrake
の名前をクリックし、変数m
の名前を変更するためのコンテキストとして選択します。[ブロック線図を更新して最近の変更を含める] チェック ボックスは、不要なモデル ブロック線図の更新を避けて時間を節約するために、既定ではオフにされています。ブロック線図の更新を強制してモデルに対する最新の変更を取り込む場合は、このチェック ボックスをオンにします。モデル ブロック線図を更新するメッセージに対して [OK] をクリックします。
モデルを開いたばかりであるため、変数の名前を変更する前に少なくとも 1 回モデル ブロック線図を更新しなければなりません。[システムを選択] ダイアログ ボックスで [ブロック線図を更新して最近の変更を含める] をオンにしてブロック線図の更新を強制的に行うことができますが、通常このオプションは、複数の変数名の変更操作を実行中にモデルを変更した場合に使用します。
[すべての名前の変更] ダイアログ ボックスで、[新しい名前] ボックスに変数の新しい名前を入力し、[OK] をクリックします。
[すべての名前の変更] ダイアログ ボックスの [対応するブロック] セクションでハイパーリンクを使用して、ターゲット ブロックを表示できます。
メモ
関数
Simulink.findVars
がサポートする変数のみ名前を変更できます。名前変更操作では、現在のモデルとすべての参照モデルで名前が変更されます。
ファイル名を変更する場合は、プロジェクトを使用してください。ファイルの名前変更、削除または除去時の自動更新を参照してください。
重複するワークスペース変数の比較
同じワークスペースまたは異なるワークスペースに保存される重複する変数を比較できます。たとえば、ベース ワークスペースに保存された変数を、モデル ワークスペースに保存されたその複製と比較できます。
モデルとモデル エクスプローラーを開く
検索ツール バーで、重複する変数を検索します。重複エントリのある行を選択します。次に、右クリックして [選択対象の比較] を選択します。
[比較] ビューアーで違いをレビューします。
ワークスペース変数のエクスポート
モデル エクスプローラーでは、ベース ワークスペースまたはモデル ワークスペースの変数を個々に指定して、または、すべてをまとめてエクスポート (保存) できます。
[参照される変数の検索]オプションまたは関数 Simulink.findVars
で検出された変数の集合をエクスポートするというワークフローも可能です。詳細については、モデルやブロックで使用されている変数の検索を参照してください。
メモ
エクスポートする変数はすべて同じワークスペースからのものでなければなりません。
モデル エクスプローラーでワークスペース内のすべての変数を MATLAB コード ファイルまたは MAT ファイルにエクスポートするには
エクスポートする変数を選択します。
ワークスペース内のすべての変数を選択するには、ワークスペース ノード (たとえば、
Base Workspace
) を右クリックして [エクスポート] メニュー項目を選択します。次に例を示します。個々の変数を選択するには、[コンテンツ] ペインでエクスポートする変数を選択します。強調表示されている変数を右クリックして、[選択をエクスポート] メニュー項目を選択します。
[コンテンツ] ペインでデータがプロパティ列の値でグループ化されている場合、グループの一番上の行を選択しても、そのグループの変数すべてが選択されません。グループ化されたデータの詳細については、モデル エクスプローラーを参照してください。
変数を MATLAB コード ファイルに保存するか MAT ファイルに保存するかを指定します。
MATLAB コード ファイルの形式は読みやすく、編集可能で、バージョン管理がサポートされています。MAT ファイルの形式はバイナリでパフォーマンス上の利点があります。
MATLAB コード ファイル形式を指定した場合、モデル エクスプローラーはそれに付随する MAT ファイルを作成できます。MAT ファイルの名前は MATLAB コード ファイルと同じになりますが、拡張子は
.m
ではなく.mat
になります。ファイルの名前と場所を指定します。
同じファイルが既に存在する場合、次のオプションを選択できるダイアログ ボックスが表示されます。
ファイル全体を上書き
ターゲット ファイル内のすべての変数を選択されている変数で上書きします。変数はアルファベット順に保存されます。
ファイル内に存在する変数を更新して、新しい変数をファイルに追加
既存の変数は更新され、新しい変数はファイルの最後に追加されます。
ファイル内に存在する変数のみを更新
既存の変数は更新されますが、新しい変数は追加されません。余分な変数があれば除外するときに便利です。
モデルのワークスペース変数を永続的に保存するには、ベース ワークスペースを使用する代わりにデータ ディクショナリを作成します。データ ディクショナリとはを参照してください。
ワークスペース変数のインポート
モデル エクスプローラーを使って、ベース ワークスペースやモデル ワークスペースに変数をインポート (読み込み) できます。ワークスペースに変数をインポートすると、既存の変数は上書きされ、新しい変数は追加されます。
ワークスペースに変数をインポートするには
[モデルの階層構造] ペインで、変数をインポートする先のワークスペースを右クリックします。
[インポート] メニュー項目を選択します。
[ファイルからインポート] ダイアログ ボックスで、インポートする変数が入っている MATLAB コード ファイルまたは MAT ファイルを選択します。
メモ
MATLAB コード ファイルからインポートする場合は、Simulink は付随の MAT ファイルもインポートします。
参考
Simulink.findVars
| モデル エクスプローラー