メインコンテンツ

getVariable

R2026b

モデルのモデル ワークスペース内の変数の値を返す

説明

varValue = getVariable(mdlWks,varName) は、Simulink.ModelWorkspace オブジェクト mdlWks で表されるモデル ワークスペース内に存在する、名前が varName の変数の値を返します。

ターゲット変数の値がハンドル オブジェクト (Simulink.Parameter など) へのハンドルである場合、getVariable はハンドルのコピーを返します。モデル ワークスペース内の変数または返される変数 (variableValue) に対する変更は両方の変数に影響します。

ハンドル オブジェクトのディープ コピーを返すには、オブジェクトの copy メソッドを使用します。モデル ワークスペースに格納するハンドル オブジェクトを変更するには、getVariable メソッドと assignin メソッドの両方を使用することをお勧めします (ハンドル オブジェクトのプロパティ値の変更を参照)。

例

例

すべて折りたたむ

モデル例 vdp を開きます。

openExample('simulink_general/VanDerPolOscillatorExample')

vdp のモデル ワークスペースを表す Simulink.ModelWorkspace オブジェクトを作成します。

mdlWks = get_param('vdp','ModelWorkspace');

myVar という名前の変数をモデル ワークスペースに作成します。

assignin(mdlWks,'myVar',5.12)

新しい変数の値を返します。varValue という名前の別の変数に値を格納します。

varValue = getVariable(mdlWks,'myVar');

モデル mdl.slx に定義されている Simulink.Parameter オブジェクト K のプロパティを変更します。getVariable を呼び出す場合は、Simulink.Parameter がハンドル クラスであるため、copy メソッドを使用します。

wksp = get_param(mdl,'ModelWorkspace');
value = copy(getVariable(wksp,'K'));
value.DataType = 'single';
assignin(wksp,'K',value);

入力引数

すべて折りたたむ

ターゲット モデル ワークスペース。Simulink.ModelWorkspace オブジェクトとして指定します。

ターゲット変数の名前。文字ベクトルとして指定します。

例: 'myVariable'

データ型: char

出力引数

すべて折りたたむ

ターゲットの変数の値。数値、構造体、またはその他の MATLAB 値として返されます。

代替方法

Simulink.data.DataConnection オブジェクト関数を使用して、モデル ワークスペースから複数の値を返します。

mw = Simulink.data.connect("myModel.slx")
set(mw,{'e','f'},{5,6});
get(mw,{'e','x','f'})
ans = 

1x3 cell array

    {[5]}    {[<missing>]}    {[6]}

バージョン履歴

R2012a で導入