主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

evalin

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

説明

evalin (工作空间表达式は,指定されたワークスペースの変数を使用して表达式で表されるMATLAB®コードを評価します。

メモ

セキュリティについての考慮事項:信頼されていないユーザー入力を使用してevalinを呼び出す場合は,予期しないコード実行を回避するために入力を検証してください。信頼されていないユーザー入力の例としては,知らないユーザーからのデータや制御できないソースからのデータが挙げられます。この懸念事項に対処しなければならない場合は,以下の方法を検討してください。

  • evalinへの入力を検証します。まず,実行可能な演算を検索します。その他の演算が見つかった場合は,実行を許可しないようにします。

  • evalinを別のものに置き換えます。詳細については,関数evalの代替方法を参照してください。

パフォーマンスについての考慮事項:ほとんどの場合,関数evalinを使用すると,他のMATLAB関数や言語構成を使用するよりも効率も下がり,結果のコードは読み取りやデバッグが困難になる可能性があります。evalinの代替手段の使用を検討してください。

output1,…,outputN) = evalin (工作空间表达式は,表达式からの出力を指定された変数で返します。

すべて折りたたむ

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

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

var =魔法(5);

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

v = evalin (“基地”“var”
V = 17 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

入力引数

すべて折りたたむ

式を評価するワークスペース。“基地”または“来电”として指定します。

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

メモ

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

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

例:evalin(“基地”、“魔法(5)”)

出力引数

すべて折りたたむ

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

制限

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

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

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

ヒント

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

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

    输出= evalin(“基地”,表达)
R2006aより前に導入