Main Content

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

evalin

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

説明

evalin(workspace,expression) は、指定されたワークスペースの変数を使用して expression で表される MATLAB® コードを評価します。

メモ

ほとんどの場合、関数 evalin を使用すると、他の MATLAB 関数や言語構成を使用するよりも効率が下がり、結果のコードは読み取りやデバッグが困難になる可能性があります。詳細については、関数 eval の代替方法を参照してください。

[output1,...,outputN] = evalin(workspace,expression) は、expression からの出力を指定された変数で返します。

すべて折りたたむ

関数 evalin を使用して、MATLAB ベース ワークスペースの変数の値を取得し、それを新しい変数に保存します。

var を、関数 magic によって返される 5 行 5 列の行列として定義します。

var = magic(5);

MATLAB ベース ワークスペースの変数 var の値を取得し、変数 v に保存します。

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

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

入力引数

すべて折りたたむ

式を評価するワークスペース。'base' または 'caller' として指定します。

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

メモ

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

評価する式。文字ベクトルまたは string スカラーとして指定します。expression は有効な MATLAB 式でなければならず、MATLAB キーワードを含めることはできません。単語が MATLAB キーワードかどうかを確認するには、関数 iskeyword を使用します。

例: evalin('magic(5)')

出力引数

すべて折りたたむ

評価される式からの出力。MATLAB データ型として返されます。

制限

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

  • 関数 evalin は、式の評価に対して再帰的に使用できません。たとえば、ステートメント evalin('caller','evalin(''caller'',''x'')') は無効です。

  • 無名関数、入れ子関数、または入れ子関数を含む関数内で evalin を使用した場合、評価された expression は変数を作成しません。

ヒント

  • MATLAB パーサーでコードに対して厳しいチェックを行い、把握できないエラーやその他の予期しない動作を防ぐために、関数 evalin への入力に出力引数を含めないでください。たとえば、ステートメント evalin('base',['output = ',expression]) は推奨されません。

    代わりに、関数 evalin の出力引数を指定して、評価された式の結果を保存します。以下に例を示します。

      output = evalin('base',expression)
R2006a より前に導入