「セクションの実行」が実行されず,別セクションの文法エラーが表示されて停止する
22 views (last 30 days)
Show older comments
MATLAB R2022b Update 2, 64-bit をWindows11で使用しています.
エディタのエラーチェック機能が,エラーを警告しているmスクリプトがあります.
そのエラーのある箇所までの動作を確認したく,スクリプトを実行しても,実行されず,エラーが表示されて停止します.そもそもスクリプトに記述したコマンドが全く実行されていないようです(実行されればワークスペースに変数が保存されるはずですが,実行後もワークスペースは空です).
それではと,エラーを含む箇所より前の部分をセクションに区切り,そのセクションを選択した上で「セクションの実行」をしても,同じように,セクション内のコマンドは全く実行されず,当該エラーを出力して停止します.エラー箇所は別セクションにあり,当該セクションの中にはありません.セクションの実行がなされれば,ワークスペースに変数が保存されるはずですが,やはり保存されていないので,そもそも実行していないようです.セクションの区切り方を変えても同様です.
以前は,上記のような実行,セクションの実行をすると,エラー箇所の1行前まではコマンドが実行されて,エラーを吐いて停止していたと思います.セクション内にエラーがなければ,セクション内のコマンドを全て実行して停止していたと思います.言い換えると,上記のような問題が起きたことが無く,思ったような動作をしていました.
実行しようとしているコマンドにエラーが無くても,mファイルのどこかに対して,エディタがエラーを警告している場合,どのような実行もなされない仕様になったのでしょうか?
エラーを含む行をコメントアウトして「セクションの実行」を行った所,想定通り,当該セクションのコマンドが実行されました.
2 Comments
Atsushi Ueno
on 28 Mar 2024 at 11:38
Edited: Atsushi Ueno
on 28 Mar 2024 at 11:55
「プログラムが動く前/後のエラー」の感覚は分かります。
disp "あれや"
for k = 1:2
disp "これや"
dispo "どれや" % 誤った綴り"dispo"にした
end
%% セクション区切り
すると、それより前のセクションに存在する誤り (disp 文を”dispo"と誤った綴りにした) が指摘される前にendoの方が怒られてしまいます。dispの実行結果も全く表示されていません。つまり、まだプログラムが1行も実行されない内からエラーが出てしまった状態です。endを正しい綴りに戻すとプログラムが実行されて、dispoのところでエラーが出ます。
disp "あれや"
for k = 1:2
disp "これや"
disp "どれや"
endo % 誤った綴り"endo"にした
この辺の体系的な知識は無いのですが、おそらくインタプリタの仕組みがそういうものなんだと思います。
Answers (0)
See Also
Categories
Find more on グラフィックス オブジェクトのプログラミング in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!