デバッグ中の値の検査
R2021b 以降。デバッグ中の値の検査 (R2021a) から置き換え。
コード ファイルのデバッグ時、MATLAB® が一時停止している間に、現在ワークスペース内にある任意の変数の値を表示できます。コードを構成する行が期待した結果を出力するかを確認する場合、値を調べると便利です。結果が期待したものであれば、コードの実行を継続するか、次の行をステップ実行できます。結果が期待どおりでない場合、対象行またはその前の行にエラーが含まれている可能性があります。
変数値の表示
デバッグ中に変数の値を表示する方法はいくつかあります。
ワークスペース ブラウザー — ワークスペース ブラウザーには、現在のワークスペースのすべての変数が表示されます。ワークスペース ブラウザーの 値列に変数の現在の値が表示されます。
詳細を表示するには、変数をダブルクリックします。変数エディターが開き、選択した変数の内容が表示されます。関数
openvar
を使用して、変数エディターで変数を開くこともできます。エディターおよびライブ エディター — エディターおよびライブ エディターで変数の値を表示するには、変数にカーソルを合わせます。変数の現在の値がデータ ヒントに表示されます。データ ヒントはカーソルを移動するまで表示されます。データ ヒントが表示されない場合は、変数が含まれる行をクリックしてからポインターを変数のそばに近づけます。
データ ヒントは、エディターでのデバッグ中は常に有効になります。ライブ エディターやエディターでのファイルの編集時にデータ ヒントを無効にするには、[ビュー] タブに移動し、 [データヒント] ボタンをクリックしてオフにします。
エディターまたはライブ エディターでは、変数または式を選択して右クリックし、[コマンド ウィンドウで選択を実行] をクリックして、それらの値を表示することもできます。変数または式の値が MATLAB のコマンド ウィンドウに表示されます。
メモ
ただし、ファイル実行時など MATLAB がビジー状態にある場合は選択対象の値を求められません。
コマンド ウィンドウ — コマンド ウィンドウで変数の値を表示するには、変数の名前を入力します。たとえば、変数
n
の値を表示するには、「n
」と入力して Enter キーを押します。コマンド ウィンドウに変数の名前とその値が表示されます。現在のワークスペースにあるすべての変数を表示するには、関数who
を呼び出します。
現在のワークスペース以外の変数値の表示
関数のデバッグ中や呼び出された関数またはファイルにステップ インしたとき、現在の行で一時停止する前に実行した関数のリストが MATLAB に表示されます。"関数呼び出しスタック" とも呼ばれるこのリストは、エディターまたはライブ エディターでファイルの先頭に表示されます。リストには関数が順番に並んでいます。最初に呼び出されたスクリプトまたは関数が左に、MATLAB によって一時停止された現在のスクリプトまたは関数が右に表示されます。
コマンド ウィンドウで関数 dbstack
を使用して現在のワークスペースを表示することもできます。
dbstack
> In mean (line 48) In plotRand (line 5)
関数呼び出しスタック内の各関数には、対応するワークスペースがあります。ワークスペースは、MATLAB 内で作成した変数、またはデータ ファイルや他のプログラムからインポートした変数を格納します。コマンド ウィンドウから代入される変数やスクリプトを使用して作成される変数は、ベース ワークスペースに属します。関数内に作成される変数は、それ自身の関数ワークスペースに属します。
現在のワークスペースの外にある変数の値を確認するには、別のワークスペースを選択します。エディターまたはライブ エディターで、ファイルの先頭の関数呼び出しスタックの右にあるドロップダウン リストからワークスペースを選択します。
コマンド ウィンドウで関数 dbup
および dbdown
を使用して関数呼び出しスタック内の前または次のワークスペースを選択することもできます。関数 who
または関数 whos
を使い、現在のワークスペース内の変数を表示する
MATLAB での変数の上書きプロセス中に別のワークスペースの変数の値を表示しようとすると、MATLAB のコマンド ウィンドウにエラーが表示されます。
K>> x Variable "x" is inaccessible. When a variable appears on both sides of an assignment statement, the variable may become temporarily unavailable during processing.
dbup
コマンドを使用した場合にも発生します。