2023.06.11MATLABMATLABプログラムのバグ取りを行う際、次のように思うことはありませんか?計算途中の変数の値を手軽に確認できたらいいのに...デバッガは、まさにそれを叶える機能です!この記事では、MATLABデバッガの基本的な使い方をまとめます。条件付きブレークポイント停止ポイントをコードで記述とりあえずマズいことになったら停止デバッグの流れデバッガを用いたデバッグの基本的な流れは、次の通りです。気になる所でプログラムを一時停止させる変数の詳細を確認する次の気になる所までプログラムを走らせる以降2,3の繰り返し順に操作方法を見ていきましょう。以降、次の漸化式を解くデモプログラムを使用して、説明します。気になる所でプログラムを一時停止させるまず、プログラムにブレークポイントと呼ばれる停止ポイントを設定します。forループの中にブレークポイントを設定してみましょう。該当行の左の「-」をクリックすることで、ブレークポイントが設定されます。設定したブレークポイントをもう一度クリックすると、削除されます。ブレークポイントが設定された状態でプログラムを実行すると、ブレークポイントに差し掛かった時点で処理が一時停止され、デバッグモードに入ります。変数の詳細を確認するデバッグモードに入りました。矢印の行はまだ実行されていない状態です。デバッグモード中は、コマンドウィンドウの「>>」が「K>>」に変わります。ワークスペースタブにその時点での変数一覧が表示されるので、それぞれの値を確認することができます。便利ですね!エディタ上の変数にマウスホバーしても変数値が表示されます。コマンドウィンドウから命令を打ち込むことも可能です。変数の詳細を確認するのに便利です。コマンドウィンドウからplot関数を呼び出してデータをプロットすることも可能ですが、デバッグ中はGUIのプロット機能を用いると便利です。方法はこちらの記事で紹介していますので、興味があれば合わせてご参照ください。MATLABのplot機能の使い方・グラフの書き方まとめMATLABのplot機能は大変便利ですが、多機能なだけに初めて使うときに少し面食らうかもしれません。このページでは、最低限知っておきたいplot関係の基本機能をまとめています。ワークスペースの変数をちょっ...controlabo.com2022.11.21スポンサーリンク次の気になる所までプログロムを走らせるエディタ上部の「デバッグ」タブより、再びプログラムを走らせることができます。それぞれのボタンの機能を説明していきます。次のブレークポイントまでプログラムが走ります。ステッププログラムが一行ずつ走ります。変数の変化をじっくり追うときに便利です。ステップインこれもプログラムが一行ずつ走りますが、その行に関数があるとその関数の中に入ります。今回の例で「ステップイン」を押すと、関数sqcosに入った状態で処理が一時停止します。ワークスペースに表示される変数は、その関数から見える変数(ローカル変数)に変わります。この状態から関数外の変数を見たいときは、「関数呼び出しスタック」プルダウンから関数呼び出し元の視点に戻ればOKです。視点が変わるだけで、プログラム処理の現在位置は変わりません。ステップアウト現在の関数を出るまでプログラムが走ります。スポンサーリンクカーソル行まで実行エディタ上のカーソル位置までプログラムが走ります。「ちょっとそこまで」走らせるときに便利です。デバッガの基本的な操作方法は以上です。「ブレークポイント」ボタンより可能です。条件付きブレークポイント「もしこうなったら一時停止」という条件付きブレークポイントも設定できます。ブレークポイントを右クリックし、「条件の設定/変更」を選択します。条件設定ウィンドウが表示されるので、条件式を入力します。あとは通常と同じくプログラムを実行するだけです。設定した条件付きブレークポイントをクリックすると、ブレークポイントが一時的に無効化されます。無効化した状態でもう一度クリックすると、ブレークポイントが条件ごと消去されてしまうので注意してください。有効にするには、右クリックから「ブレークポイントを有効にする」を選択します。スポンサーリンク停止ポイントをコードで記述keyboardとプログラム中に記述すると、その行でコードが一時停止し、デバッグモードに入ります。ブレークポイントと違ってMATLABを終了させても消えませんが、代わりに一括削除ができないので多用は避けたほうが無難です。発生した時点で停止し、デバッグモードに移行するよう設定できます。具体的にブレークポイントを設定する必要がないので便利です。error関数/warning関数によって自分で実装したエラー・警告に対しても、一時停止してくれます。これらの関数を使い、望ましくない挙動を事前にマークしておくと、より柔軟にデバッグすることができます。試しに今回のプログラムのforループに、ラストループにて警告を出す処理を入れてみます。endend「警告で一時停止」オプションを設定して実行すると、warning関数が呼ばれた時点で一時停止し、デバッグモードに移行します。以上、MATLABデバッガの使い方まとめでした。デバッガを使って快適なMATLABライフを!MATLABの便利コマンドまとめ。基本文法の次はコレ!utf-8のvimでShift_JISのMATLABコードを編集する設定MATLABこんとろラボ関連記事MATLABMATLABで複数のfigureウィンドウを自動で並べる方法MATLAButf-8のvimでShift_JISのMATLABコードを編集する設定MATLABMATLABアップデートで無くなったfigureのズームボタンを元に戻す方法MATLABMATLABの便利コマンドまとめ。基本文法の次はコレ!MATLABMATLABのplot機能の使い方・グラフの書き方まとめスポンサーリンクコメントコメントを書き込むコメントをキャンセルメールアドレスが公開されることはありません。制御プログラミングXで制御マンガ、読めます!楽しいYouTube配信、あります!無料のオンライン勉強会も!気軽で楽しく、タメになる!SICE(計測自動制御学会)とも連携中!関連記事MATLABアップデートで無くなったfigureのズームボタンを元に戻す方法2019.04.112020.10.17MATLABのplot機能の使い方・グラフの書き方まとめ2019.04.112022.11.21MATLABで複数のfigureウィンドウを自動で並べる方法2019.04.112020.09.27MATLABの便利コマンドまとめ。