ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

evalin

指定したワークスペースで MATLAB 式を実行

構文

evalin(ws, expression)
[a1, a2, a3, ...] = evalin(ws, expression)

説明

evalin(ws, expression) は、ワークスペース ws で、有効な MATLAB® 式を含む文字列 expression を実行します。ws には、それぞれ、MATLAB のベース ワークスペースまたは呼び出し側関数のワークスペースを示す 'base' または 'caller' の値を使用できます。expression は、角かっこの中に変数や文字列を連結することにより作成できます。

expression = [string1, int2str(var), string2,...]

[a1, a2, a3, ...] = evalin(ws, expression) は、expression を実行し、指定した出力変数に結果を返します。また、以下のように、式文字列に出力引数を含める場合、evalin 出力引数リストを使用することをお勧めします。

evalin(ws,'[a1, a2, a3, ...] = function(var)')

上記の構文では、MATLAB 文法による厳密なチェック処理が避けられ、そのために、エラーを把握できなかったり、予期せぬ動作を示すことがあります。

この例は、MATLAB のベースワークスペースの中の変数 var の値をローカル変数 v として取り込みます。

v = evalin('base', 'var');

制限

関数 evalin は、式の評価に対して再帰的に使用できません。たとえば、evalin('caller', 'evalin(''caller'', ''x'')') の形式の式は、機能しません。

詳細

すべて展開する

ヒント

MATLAB のベース ワークスペースは、MATLAB のコマンド ラインから見ることのできるもので、デバッガーの中のものとは異なります。呼び出し側のワークスペースは、現在実行中の関数を呼び出した関数のワークスペースです。ベース ワークスペースと呼び出し側のワークスペースは、MATLAB コマンド ラインから呼び出された関数の中では同じものです。

evalin('caller', expression) は、呼び出し側のワークスペースの変数のみを検索します。呼び出し側の関数は検索しません。このため、関数 evalin を使用して、呼び出し側で定義された関数のハンドルを作成することはできません。

関数 dbup または関数 dbdown を使用してローカル ワークスペースの文脈を変更してから evalin('caller', expression) を MATLAB デバッガーで使用すると、MATLAB では、現在のワークスペースから 1 つ上のスタック レベルにある関数の文脈の式が評価されます。

参考

| | | | |

この情報は役に立ちましたか?